{"version":3,"file":"static/js/main.6465e704.js","mappings":"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","sources":["services/auth.ts","app/authSlice.ts","app/commonSlice.ts","app/hooks.ts","constant/index.ts","../node_modules/redux-persist/es/integration/react.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/withRouter.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/antd/es/config-provider/context.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/isEqual.js","../node_modules/@ant-design/cssinjs/es/Cache.js","../node_modules/@ant-design/cssinjs/es/StyleContext.js","../node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","../node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/cssinjs/es/util.js","../node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/@ant-design/cssinjs/es/linters/legacyNotSelectorLinter.js","../node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js","../node_modules/@ant-design/cssinjs/es/Keyframes.js","../node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","../node_modules/@ant-design/cssinjs/es/theme/Theme.js","../node_modules/@ant-design/cssinjs/es/theme/createTheme.js","../node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","../node_modules/antd/es/style/index.js","../node_modules/antd/es/version/index.js","../node_modules/antd/es/version/version.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/index.js","../node_modules/antd/es/theme/themes/shared/genControlHeight.js","../node_modules/antd/es/theme/themes/seed.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/antd/es/theme/themes/shared/genColorMapToken.js","../node_modules/antd/es/theme/themes/shared/genRadius.js","../node_modules/antd/es/theme/themes/default/colorAlgorithm.js","../node_modules/antd/es/theme/themes/default/colors.js","../node_modules/antd/es/theme/themes/shared/genFontMapToken.js","../node_modules/antd/es/theme/themes/shared/genFontSizes.js","../node_modules/antd/es/theme/themes/default/index.js","../node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","../node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","../node_modules/antd/es/theme/util/getAlphaColor.js","../node_modules/antd/es/theme/util/alias.js","../node_modules/antd/es/theme/internal.js","../node_modules/antd/es/theme/util/statistic.js","../node_modules/antd/es/theme/util/genComponentStyleHook.js","../node_modules/antd/es/layout/style/light.js","../node_modules/antd/es/layout/style/index.js","../node_modules/antd/es/layout/layout.js","../node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/BarsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/rc-util/es/omit.js","../node_modules/antd/es/_util/isNumeric.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/layout/index.js","../node_modules/@ant-design/icons-svg/es/asn/ProfileFilled.js","../node_modules/@ant-design/icons/es/icons/ProfileFilled.js","../node_modules/@ant-design/icons-svg/es/asn/LoginOutlined.js","../node_modules/@ant-design/icons/es/icons/LoginOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MenuUnfoldOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuUnfoldOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MenuFoldOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuFoldOutlined.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/hooks/useBatchFrameState.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/src/propertyUtils.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/antd/es/style/motion/collapse.js","../node_modules/antd/es/style/motion/motion.js","../node_modules/antd/es/style/motion/slide.js","../node_modules/antd/es/style/motion/zoom.js","../node_modules/antd/es/menu/style/horizontal.js","../node_modules/antd/es/menu/style/rtl.js","../node_modules/antd/es/menu/style/theme.js","../node_modules/antd/es/menu/style/vertical.js","../node_modules/antd/es/menu/style/index.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/theme/interface/presetColors.js","../node_modules/antd/es/style/presetColor.js","../node_modules/antd/es/style/roundedArrow.js","../node_modules/antd/es/style/placementArrow.js","../node_modules/antd/es/tooltip/style/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/util.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/tooltip/PurePanel.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/hooks/useItems.js","../node_modules/antd/es/menu/menu.js","../node_modules/antd/es/menu/index.js","../node_modules/antd/es/theme/themes/dark/colorAlgorithm.js","../node_modules/antd/es/theme/themes/dark/colors.js","../node_modules/antd/es/theme/themes/dark/index.js","../node_modules/antd/es/theme/themes/compact/index.js","../node_modules/antd/es/theme/themes/compact/genCompactSizeMapToken.js","../node_modules/antd/es/theme/index.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-util/es/utils/get.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/cloneDeep.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale/context.js","../node_modules/antd/es/locale/index.js","../node_modules/antd/es/locale/LocaleReceiver.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/config-provider/style/index.js","../node_modules/antd/es/config-provider/hooks/useTheme.js","../node_modules/antd/es/_util/PurePanel.js","../node_modules/antd/es/space/style/compact.js","../node_modules/rc-util/es/React/render.js","../node_modules/antd/es/space/style/index.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/_util/wave/style.js","../node_modules/antd/es/_util/wave/util.js","../node_modules/antd/es/_util/wave/WaveEffect.js","../node_modules/antd/es/_util/wave/useWave.js","../node_modules/antd/es/_util/wave/index.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/button/buttonHelpers.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/style/group.js","../node_modules/antd/es/style/compact-item.js","../node_modules/antd/es/style/compact-item-vertical.js","../node_modules/antd/es/button/style/index.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/button/index.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/antd/es/space/Item.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/style/motion/move.js","../node_modules/antd/es/dropdown/style/button.js","../node_modules/antd/es/dropdown/style/status.js","../node_modules/antd/es/dropdown/style/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/_util/responsiveObserver.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/antd/es/avatar/SizeContext.js","../node_modules/antd/es/avatar/style/index.js","../node_modules/antd/es/avatar/avatar.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/antd/es/popover/style/index.js","../node_modules/antd/es/popover/PurePanel.js","../node_modules/antd/es/popover/index.js","../node_modules/antd/es/avatar/group.js","../node_modules/antd/es/avatar/index.js","Layout/Header.tsx","../node_modules/@ant-design/icons-svg/es/asn/DashboardOutlined.js","../node_modules/@ant-design/icons/es/icons/DashboardOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/BookOutlined.js","../node_modules/@ant-design/icons/es/icons/BookOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ShoppingOutlined.js","../node_modules/@ant-design/icons/es/icons/ShoppingOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ApartmentOutlined.js","../node_modules/@ant-design/icons/es/icons/ApartmentOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DesktopOutlined.js","../node_modules/@ant-design/icons/es/icons/DesktopOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PhoneOutlined.js","../node_modules/@ant-design/icons/es/icons/PhoneOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MessageOutlined.js","../node_modules/@ant-design/icons/es/icons/MessageOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SafetyCertificateOutlined.js","../node_modules/@ant-design/icons/es/icons/SafetyCertificateOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ContactsOutlined.js","../node_modules/@ant-design/icons/es/icons/ContactsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EnvironmentOutlined.js","../node_modules/@ant-design/icons/es/icons/EnvironmentOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TranslationOutlined.js","../node_modules/@ant-design/icons/es/icons/TranslationOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TeamOutlined.js","../node_modules/@ant-design/icons/es/icons/TeamOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ProfileOutlined.js","../node_modules/@ant-design/icons/es/icons/ProfileOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SecurityScanOutlined.js","../node_modules/@ant-design/icons/es/icons/SecurityScanOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UserSwitchOutlined.js","../node_modules/@ant-design/icons/es/icons/UserSwitchOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/GoldOutlined.js","../node_modules/@ant-design/icons/es/icons/GoldOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ProjectOutlined.js","../node_modules/@ant-design/icons/es/icons/ProjectOutlined.js","../node_modules/react-use/esm/useEffectOnce.js","screens/language/services/index.ts","utils/permisson.enum.ts","screens/language/slice.ts","screens/user/services/index.ts","screens/user/slice.ts","Layout/Sider.tsx","Layout/index.tsx","app/components/loadingPage/index.tsx","screens/login/index.tsx","screens/notFound/index.tsx","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/antd/es/_util/ActionButton.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-dialog/es/Dialog/Mask.js","../node_modules/rc-dialog/es/util.js","../node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../node_modules/rc-dialog/es/Dialog/Content/Panel.js","../node_modules/rc-dialog/es/Dialog/Content/index.js","../node_modules/rc-dialog/es/Dialog/index.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/rc-dialog/es/index.js","../node_modules/antd/es/form/context.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/antd/es/style/motion/fade.js","../node_modules/antd/es/modal/style/index.js","../node_modules/antd/es/modal/PurePanel.js","../node_modules/antd/es/modal/Modal.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/destroyFns.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/_util/hooks/usePatchElement.js","../node_modules/antd/es/modal/index.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/rc-image/es/PreviewGroup.js","../node_modules/rc-image/es/previewConfig.js","../node_modules/rc-image/es/Operations.js","../node_modules/rc-image/es/hooks/useImageTransform.js","../node_modules/rc-image/es/getFixScaleEleTransPosition.js","../node_modules/rc-image/es/Preview.js","../node_modules/rc-image/es/Image.js","../node_modules/rc-image/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/RotateLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/RotateLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RotateRightOutlined.js","../node_modules/@ant-design/icons/es/icons/RotateRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ZoomInOutlined.js","../node_modules/@ant-design/icons/es/icons/ZoomInOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ZoomOutOutlined.js","../node_modules/@ant-design/icons/es/icons/ZoomOutOutlined.js","../node_modules/antd/es/image/style/index.js","../node_modules/antd/es/image/PreviewGroup.js","../node_modules/antd/es/image/index.js","../node_modules/antd/es/skeleton/Element.js","../node_modules/antd/es/skeleton/style/index.js","../node_modules/antd/es/skeleton/Avatar.js","../node_modules/antd/es/skeleton/Button.js","../node_modules/@ant-design/icons-svg/es/asn/DotChartOutlined.js","../node_modules/@ant-design/icons/es/icons/DotChartOutlined.js","../node_modules/antd/es/skeleton/Node.js","../node_modules/antd/es/skeleton/Image.js","../node_modules/antd/es/skeleton/Input.js","../node_modules/antd/es/skeleton/Paragraph.js","../node_modules/antd/es/skeleton/Title.js","../node_modules/antd/es/skeleton/Skeleton.js","../node_modules/antd/es/skeleton/index.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useRaf.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/index.js","../node_modules/antd/es/tabs/hooks/useAnimateConfig.js","../node_modules/antd/es/tabs/hooks/useLegacyItems.js","../node_modules/antd/es/tabs/TabPane.js","../node_modules/antd/es/tabs/style/motion.js","../node_modules/antd/es/tabs/style/index.js","../node_modules/antd/es/tabs/index.js","../node_modules/antd/es/card/Grid.js","../node_modules/antd/es/card/style/index.js","../node_modules/antd/es/card/Card.js","../node_modules/antd/es/card/Meta.js","../node_modules/antd/es/card/index.js","../node_modules/rc-table/es/constant.js","../node_modules/@rc-component/context/es/context.js","../node_modules/@rc-component/context/es/Immutable.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-table/es/hooks/useRenderTimes.js","../node_modules/rc-table/es/context/PerfContext.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/Cell/useCellRender.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/Cell/useHoverState.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Footer/SummaryContext.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/Footer/Summary.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/rc-table/es/hooks/useFlattenRecords.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/MeasureRow.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/FixedHolder/index.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/hooks/useColumns.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/hooks/useExpand.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/hooks/useHover.js","../node_modules/rc-table/es/hooks/useFixedInfo.js","../node_modules/antd/es/table/Column.js","../node_modules/antd/es/table/ColumnGroup.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/style/index.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/KeyCode.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/BaseSelect.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/utils/warningPropsUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/antd/es/select/style/dropdown.js","../node_modules/antd/es/select/style/multiple.js","../node_modules/antd/es/select/style/single.js","../node_modules/antd/es/select/style/index.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/pagination/Select.js","../node_modules/antd/es/input/style/index.js","../node_modules/antd/es/pagination/style/index.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","../node_modules/throttle-debounce/debounce.js","../node_modules/throttle-debounce/throttle.js","../node_modules/antd/es/spin/style/index.js","../node_modules/antd/es/spin/index.js","../node_modules/antd/es/_util/getScroll.js","../node_modules/antd/es/_util/scrollTo.js","../node_modules/antd/es/_util/easings.js","../node_modules/antd/es/table/ExpandIcon.js","../node_modules/antd/es/table/util.js","../node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","../node_modules/@ant-design/icons/es/icons/FilterFilled.js","../node_modules/rc-checkbox/es/index.js","../node_modules/antd/es/checkbox/style/index.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/index.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/style/index.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/_util/getDataOrAriaProps.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-tree/es/util.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/DropIndicator.js","../node_modules/rc-tree/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","../node_modules/@ant-design/icons/es/icons/HolderOutlined.js","../node_modules/antd/es/tree/utils/dropIndicator.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","../node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","../node_modules/@ant-design/icons/es/icons/FileOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","../node_modules/antd/es/tree/utils/iconUtil.js","../node_modules/antd/es/tree/style/index.js","../node_modules/antd/es/tree/Tree.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOutlined.js","../node_modules/antd/es/tree/utils/dictUtil.js","../node_modules/antd/es/tree/DirectoryTree.js","../node_modules/antd/es/tree/index.js","../node_modules/antd/es/input/Group.js","../node_modules/rc-input/es/utils/commonUtils.js","../node_modules/rc-input/es/BaseInput.js","../node_modules/rc-input/es/Input.js","../node_modules/rc-input/es/index.js","../node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/input/utils.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","../node_modules/antd/es/input/Password.js","../node_modules/antd/es/input/Search.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/antd/es/input/ClearableLabeledInput.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/index.js","../node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","../node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../node_modules/antd/es/_util/hooks/useSyncState.js","../node_modules/antd/es/table/hooks/useFilter/index.js","../node_modules/antd/es/_util/extendsObject.js","../node_modules/antd/es/table/hooks/usePagination.js","../node_modules/antd/es/table/hooks/useSelection.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","../node_modules/antd/es/table/hooks/useSorter.js","../node_modules/antd/es/table/hooks/useTitleColumns.js","../node_modules/antd/es/table/RcTable.js","../node_modules/antd/es/table/style/bordered.js","../node_modules/antd/es/table/style/ellipsis.js","../node_modules/antd/es/table/style/empty.js","../node_modules/antd/es/table/style/expand.js","../node_modules/antd/es/style/operationUnit.js","../node_modules/antd/es/table/style/filter.js","../node_modules/antd/es/table/style/fixed.js","../node_modules/antd/es/table/style/pagination.js","../node_modules/antd/es/table/style/radius.js","../node_modules/antd/es/table/style/rtl.js","../node_modules/antd/es/table/style/selection.js","../node_modules/antd/es/table/style/size.js","../node_modules/antd/es/table/style/sorter.js","../node_modules/antd/es/table/style/sticky.js","../node_modules/antd/es/table/style/summary.js","../node_modules/antd/es/table/style/index.js","../node_modules/antd/es/table/InternalTable.js","../node_modules/antd/es/table/hooks/useLazyKVMap.js","../node_modules/antd/es/table/Table.js","../node_modules/antd/es/table/index.js","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/grid/style/index.js","../node_modules/antd/es/grid/row.js","../node_modules/antd/es/row/index.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/col/index.js","Layout/Form/Label.tsx","../node_modules/react-use/esm/useAsyncFn.js","../node_modules/react-use/esm/useMountedState.js","screens/banner/services/index.ts","assets/img/kebab.svg","screens/banner/slice.ts","screens/banner/component/searchComponent.tsx","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","../node_modules/rc-collapse/es/PanelContent.js","../node_modules/rc-collapse/es/Panel.js","../node_modules/rc-collapse/es/Collapse.js","../node_modules/rc-collapse/es/index.js","../node_modules/antd/es/collapse/CollapsePanel.js","../node_modules/antd/es/collapse/style/index.js","../node_modules/antd/es/collapse/Collapse.js","../node_modules/antd/es/collapse/index.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","Layout/search/index.tsx","screens/banner/component.tsx","../node_modules/@ant-design/icons-svg/es/asn/MinusCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusCircleOutlined.js","../node_modules/antd/es/form/hooks/useDebounce.js","../node_modules/antd/es/form/style/explain.js","../node_modules/antd/es/form/style/index.js","../node_modules/antd/es/form/ErrorList.js","../node_modules/antd/es/form/util.js","../node_modules/antd/es/form/hooks/useForm.js","../node_modules/antd/es/form/Form.js","../node_modules/antd/es/form/hooks/useFormItemStatus.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","../node_modules/antd/es/form/FormItemLabel.js","../node_modules/antd/es/form/FormItemInput.js","../node_modules/antd/es/form/FormItem/ItemHolder.js","../node_modules/antd/es/form/FormItem/index.js","../node_modules/antd/es/form/hooks/useFrameState.js","../node_modules/antd/es/form/hooks/useItemRef.js","../node_modules/antd/es/form/FormList.js","../node_modules/antd/es/form/index.js","../node_modules/antd/es/form/hooks/useFormInstance.js","../node_modules/antd/es/divider/style/index.js","../node_modules/antd/es/divider/index.js","Layout/sliders/animate-slider.tsx","../node_modules/rc-upload/es/request.js","../node_modules/rc-upload/es/uid.js","../node_modules/rc-upload/es/attr-accept.js","../node_modules/rc-upload/es/traverseFileTree.js","../node_modules/rc-upload/es/AjaxUploader.js","../node_modules/rc-upload/es/Upload.js","../node_modules/rc-upload/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/FileTwoTone.js","../node_modules/@ant-design/icons/es/icons/FileTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/PaperClipOutlined.js","../node_modules/@ant-design/icons/es/icons/PaperClipOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PictureTwoTone.js","../node_modules/@ant-design/icons/es/icons/PictureTwoTone.js","../node_modules/antd/es/upload/utils.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","../node_modules/rc-progress/es/common.js","../node_modules/rc-progress/es/Line.js","../node_modules/rc-progress/es/hooks/useId.js","../node_modules/rc-progress/es/Circle.js","../node_modules/antd/es/progress/utils.js","../node_modules/antd/es/progress/Circle.js","../node_modules/antd/es/progress/Line.js","../node_modules/antd/es/progress/Steps.js","../node_modules/antd/es/progress/style/index.js","../node_modules/antd/es/progress/progress.js","../node_modules/antd/es/progress/index.js","../node_modules/antd/es/upload/UploadList/ListItem.js","../node_modules/antd/es/upload/UploadList/index.js","../node_modules/antd/es/upload/style/dragger.js","../node_modules/antd/es/upload/style/list.js","../node_modules/antd/es/upload/style/motion.js","../node_modules/antd/es/upload/style/picture.js","../node_modules/antd/es/upload/style/rtl.js","../node_modules/antd/es/upload/style/index.js","../node_modules/antd/es/upload/Upload.js","../node_modules/antd/es/upload/Dragger.js","../node_modules/antd/es/upload/index.js","utils/enum.ts","Layout/file/services/index.ts","Layout/uploadImg/index.tsx","screens/banner/component/createBannerComponent.tsx","screens/category/services/index.ts","screens/category/slice.ts","screens/category/component/searchComponent.tsx","screens/category/component.tsx","../node_modules/rc-switch/es/index.js","../node_modules/antd/es/switch/style/index.js","../node_modules/antd/es/switch/index.js","../node_modules/rc-tree-select/es/LegacyContext.js","../node_modules/rc-tree-select/es/TreeSelectContext.js","../node_modules/rc-tree-select/es/utils/valueUtil.js","../node_modules/rc-tree-select/es/OptionList.js","../node_modules/rc-tree-select/es/TreeNode.js","../node_modules/rc-tree-select/es/utils/strategyUtil.js","../node_modules/rc-tree-select/es/utils/legacyUtil.js","../node_modules/rc-tree-select/es/hooks/useTreeData.js","../node_modules/rc-tree-select/es/hooks/useRefFunc.js","../node_modules/rc-tree-select/es/utils/warningPropsUtil.js","../node_modules/rc-tree-select/es/TreeSelect.js","../node_modules/rc-tree-select/es/hooks/useDataEntities.js","../node_modules/rc-tree-select/es/hooks/useFilterTreeData.js","../node_modules/rc-tree-select/es/hooks/useCheckedKeys.js","../node_modules/rc-tree-select/es/hooks/useCache.js","../node_modules/rc-tree-select/es/index.js","../node_modules/antd/es/tree-select/style/index.js","../node_modules/antd/es/tree-select/index.js","Layout/CategorySelectTree/index.tsx","utils/displayType.ts","Layout/DisplayType/index.tsx","screens/category/component/tab/categoryComponent.tsx","screens/category/component/tab/categoryTabsComponent.tsx","screens/post/services/index.ts","screens/post/slice.ts","Layout/languageComponent/index.tsx","screens/post/component/searchComponent.tsx","screens/post/component.tsx","screens/postHistory/services/index.ts","screens/postHistory/slice.ts","screens/postHistory/component/searchComponent.tsx","screens/postHistory/component.tsx","../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/EditorPropTypes.js","../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/Utils.js","../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/ScriptLoader2.js","../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/TinyMCE.js","../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/Editor.js","Layout/TyniMce/index.tsx","screens/post/component/postComponent.tsx","screens/post/component/postTabsComponent.tsx","screens/product/component.tsx","Layout/RoleGroupSelect/index.tsx","screens/user/component/createUserComponent.tsx","screens/user/component/searchComponent.tsx","screens/user/component.tsx","screens/role/services/index.ts","screens/role/slice.ts","screens/role/component/createUserComponent.tsx","screens/role/component.tsx","screens/partner/services/index.ts","screens/partner/slice.ts","screens/partner/component/createPartnerComponent.tsx","screens/partner/component/searchComponent.tsx","screens/partner/component.tsx","screens/certificate/services/index.ts","screens/certificate/slice.ts","screens/certificate/component/createCertificateComponent.tsx","screens/certificate/component/searchComponent.tsx","screens/certificate/component.tsx","screens/language/component/createLanguageComponent.tsx","screens/language/component.tsx","screens/contact/services/index.ts","screens/contact/slice.ts","screens/contact/component/createContactComponent.tsx","screens/contact/component/searchComponent.tsx","screens/contact/component.tsx","screens/inforContact/component/createInforContactComponent.tsx","screens/inforContact/services/index.ts","screens/inforContact/component/InforContactTabsComponent.tsx","screens/inforContact/slice.ts","screens/inforContact/component/searchComponent.tsx","screens/inforContact/component.tsx","screens/recruiment/services/index.ts","screens/recruiment/slice.ts","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/Notifications.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/antd/es/message/style/index.js","../node_modules/antd/es/message/PurePanel.js","../node_modules/antd/es/message/util.js","../node_modules/antd/es/message/useMessage.js","../node_modules/antd/es/message/index.js","../node_modules/rc-picker/es/generate/dayjs.js","../node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","../node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","../node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","../node_modules/rc-picker/es/PanelContext.js","../node_modules/rc-picker/es/panels/Header.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js","../node_modules/rc-picker/es/utils/timeUtil.js","../node_modules/rc-picker/es/panels/PanelBody.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js","../node_modules/rc-picker/es/utils/uiUtil.js","../node_modules/rc-picker/es/panels/DecadePanel/index.js","../node_modules/rc-picker/es/utils/dateUtil.js","../node_modules/rc-picker/es/hooks/useValueTexts.js","../node_modules/rc-picker/es/hooks/useHoverValue.js","../node_modules/rc-picker/es/hooks/usePickerInput.js","../node_modules/rc-picker/es/hooks/usePresets.js","../node_modules/rc-picker/es/hooks/useTextValueMapping.js","../node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js","../node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js","../node_modules/rc-picker/es/utils/miscUtil.js","../node_modules/rc-picker/es/panels/TimePanel/TimeBody.js","../node_modules/rc-picker/es/panels/TimePanel/index.js","../node_modules/rc-picker/es/RangeContext.js","../node_modules/rc-picker/es/hooks/useCellClassName.js","../node_modules/rc-picker/es/panels/DatePanel/DateBody.js","../node_modules/rc-picker/es/panels/DatePanel/DateHeader.js","../node_modules/rc-picker/es/panels/DatePanel/index.js","../node_modules/rc-picker/es/panels/DatetimePanel/index.js","../node_modules/rc-picker/es/panels/WeekPanel/index.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js","../node_modules/rc-picker/es/panels/MonthPanel/index.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js","../node_modules/rc-picker/es/panels/QuarterPanel/index.js","../node_modules/rc-picker/es/panels/YearPanel/YearHeader.js","../node_modules/rc-picker/es/panels/YearPanel/YearBody.js","../node_modules/rc-picker/es/panels/YearPanel/index.js","../node_modules/rc-picker/es/utils/getExtraFooter.js","../node_modules/rc-picker/es/utils/getRanges.js","../node_modules/rc-picker/es/PickerPanel.js","../node_modules/rc-picker/es/PickerTrigger.js","../node_modules/rc-picker/es/PresetPanel.js","../node_modules/rc-picker/es/Picker.js","../node_modules/rc-picker/es/hooks/useRangeViewDates.js","../node_modules/rc-picker/es/RangePicker.js","../node_modules/rc-picker/es/hooks/useRangeDisabled.js","../node_modules/rc-picker/es/index.js","../node_modules/antd/es/date-picker/util.js","../node_modules/antd/es/date-picker/style/index.js","../node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","../node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","../node_modules/antd/es/date-picker/generatePicker/index.js","../node_modules/antd/es/date-picker/PickerButton.js","../node_modules/antd/es/date-picker/index.js","../node_modules/@ant-design/icons-svg/es/asn/UploadOutlined.js","../node_modules/@ant-design/icons/es/icons/UploadOutlined.js","Layout/uploadFile/index.tsx","screens/recruiment/component/createRecruimentComponent.tsx","screens/recruiment/component/searchComponent.tsx","screens/recruiment/component.tsx","../node_modules/@antv/g2/node_modules/tslib/tslib.es6.mjs","../node_modules/@antv/g2/src/constant.ts","../node_modules/@antv/dom-util/src/create-dom.ts","../node_modules/@antv/g2/src/engine/index.ts","../node_modules/@antv/dom-util/src/modify-css.ts","../node_modules/@antv/g2/src/util/dom.ts","../node_modules/@antv/g2/src/base.ts","../node_modules/@antv/adjust/src/constant.ts","../node_modules/@antv/adjust/src/adjusts/adjust.ts","../node_modules/@antv/adjust/src/factory.ts","../node_modules/@antv/adjust/node_modules/tslib/tslib.es6.js","../node_modules/@antv/adjust/src/adjusts/dodge.ts","../node_modules/@antv/adjust/src/adjusts/jitter.ts","../node_modules/@antv/adjust/src/adjusts/stack.ts","../node_modules/@antv/adjust/src/adjusts/symmetric.ts","../node_modules/@antv/adjust/src/index.ts","../node_modules/@antv/attr/src/attributes/base.ts","../node_modules/@antv/attr/node_modules/tslib/tslib.es6.mjs","../node_modules/@antv/color-util/src/index.ts","../node_modules/@antv/attr/src/attributes/color.ts","../node_modules/@antv/attr/src/attributes/opacity.ts","../node_modules/@antv/attr/src/attributes/position.ts","../node_modules/@antv/attr/src/attributes/shape.ts","../node_modules/@antv/attr/src/attributes/size.ts","../node_modules/@antv/scale/src/tick-method/register.ts","../node_modules/@antv/scale/src/base.ts","../node_modules/@antv/scale/node_modules/tslib/tslib.es6.mjs","../node_modules/@antv/scale/src/category/base.ts","../node_modules/fecha/src/fecha.ts","../node_modules/@antv/scale/src/util/time.ts","../node_modules/@antv/scale/src/util/bisector.ts","../node_modules/@antv/scale/src/category/time.ts","../node_modules/@antv/scale/src/continuous/base.ts","../node_modules/@antv/scale/src/continuous/linear.ts","../node_modules/@antv/scale/src/util/math.ts","../node_modules/@antv/scale/src/continuous/log.ts","../node_modules/@antv/scale/src/continuous/pow.ts","../node_modules/@antv/scale/src/continuous/time.ts","../node_modules/@antv/scale/src/continuous/quantize.ts","../node_modules/@antv/scale/src/continuous/quantile.ts","../node_modules/@antv/scale/src/factory.ts","../node_modules/@antv/scale/src/identity/index.ts","../node_modules/@antv/scale/src/tick-method/cat.ts","../node_modules/@antv/scale/src/util/d3-linear.ts","../node_modules/@antv/scale/src/util/interval.ts","../node_modules/@antv/scale/src/util/strict-limit.ts","../node_modules/@antv/scale/src/util/pretty-number.ts","../node_modules/@antv/scale/src/util/extended.ts","../node_modules/@antv/scale/src/util/pretty.ts","../node_modules/@antv/scale/src/tick-method/quantile.ts","../node_modules/@antv/scale/src/tick-method/time-pretty.ts","../node_modules/@antv/scale/src/tick-method/index.ts","../node_modules/@antv/scale/src/tick-method/time-cat.ts","../node_modules/@antv/scale/src/tick-method/linear.ts","../node_modules/@antv/scale/src/tick-method/r-prettry.ts","../node_modules/@antv/scale/src/tick-method/time.ts","../node_modules/@antv/scale/src/tick-method/log.ts","../node_modules/@antv/scale/src/tick-method/pow.ts","../node_modules/@antv/scale/src/tick-method/d3-linear.ts","../node_modules/@antv/scale/src/index.ts","../node_modules/@antv/attr/src/factory.ts","../node_modules/@antv/attr/src/index.ts","../node_modules/gl-matrix/esm/vec3.js","../node_modules/@antv/coord/src/coord/base.ts","../node_modules/@antv/coord/src/coord/cartesian.ts","../node_modules/@antv/coord/src/coord/helix.ts","../node_modules/@antv/coord/src/coord/polar.ts","../node_modules/@antv/coord/src/factory.ts","../node_modules/@antv/component/src/util/event.ts","../node_modules/@antv/coord/src/index.ts","../node_modules/@antv/component/src/util/matrix.ts","../node_modules/@antv/component/src/util/util.ts","../node_modules/@antv/component/src/abstract/component.ts","../node_modules/@antv/component/src/abstract/group-component.ts","../node_modules/@antv/component/src/util/text.ts","../node_modules/@antv/component/src/util/label.ts","../node_modules/@antv/component/src/util/graphic.ts","../node_modules/@antv/component/src/util/theme.ts","../node_modules/@antv/component/src/annotation/line.ts","../node_modules/@antv/component/src/annotation/text.ts","../node_modules/@antv/component/src/annotation/arc.ts","../node_modules/@antv/component/src/annotation/region.ts","../node_modules/@antv/component/src/annotation/image.ts","../node_modules/@antv/component/src/annotation/data-marker.ts","../node_modules/@antv/component/src/annotation/data-region.ts","../node_modules/@antv/component/src/annotation/region-filter.ts","../node_modules/@antv/component/src/annotation/shape.ts","../node_modules/@antv/dom-util/src/get-style.ts","../node_modules/@antv/dom-util/src/get-outer-width.ts","../node_modules/@antv/dom-util/src/get-width.ts","../node_modules/@antv/dom-util/src/get-outer-height.ts","../node_modules/@antv/dom-util/src/get-height.ts","../node_modules/@antv/component/src/abstract/html-component.ts","../node_modules/@antv/component/src/annotation/html.ts","../node_modules/@antv/component/src/util/state.ts","../node_modules/@antv/component/src/axis/base.ts","../node_modules/@antv/component/src/axis/overlap/auto-ellipsis.ts","../node_modules/@antv/component/src/axis/overlap/auto-hide.ts","../node_modules/@antv/component/src/axis/overlap/auto-rotate.ts","../node_modules/@antv/component/src/axis/line.ts","../node_modules/@antv/component/src/axis/circle.ts","../node_modules/@antv/component/src/crosshair/base.ts","../node_modules/@antv/component/src/crosshair/line.ts","../node_modules/@antv/component/src/crosshair/circle.ts","../node_modules/@antv/component/src/crosshair/css-const.ts","../node_modules/@antv/component/src/crosshair/html-theme.ts","../node_modules/@antv/component/src/crosshair/html.ts","../node_modules/@antv/component/src/grid/base.ts","../node_modules/@antv/component/src/grid/circle.ts","../node_modules/@antv/component/src/grid/line.ts","../node_modules/@antv/component/src/legend/base.ts","../node_modules/@antv/component/src/legend/category.ts","../node_modules/@antv/component/src/legend/continuous.ts","../node_modules/@antv/component/src/tooltip/css-const.ts","../node_modules/@antv/component/src/tooltip/html-theme.ts","../node_modules/@antv/component/src/tooltip/html.ts","../node_modules/@antv/component/src/util/align.ts","../node_modules/@antv/component/src/trend/constant.ts","../node_modules/@antv/component/src/trend/path.ts","../node_modules/@antv/component/src/trend/trend.ts","../node_modules/@antv/component/src/slider/handler.ts","../node_modules/@antv/component/src/slider/constant.ts","../node_modules/@antv/component/src/slider/slider.ts","../node_modules/@antv/dom-util/src/add-event-listener.ts","../node_modules/@antv/component/src/scrollbar/scrollbar.ts","../node_modules/@antv/g2/src/dependents.ts","../node_modules/@antv/g2/src/util/graphics.ts","../node_modules/@antv/g2/src/util/helper.ts","../node_modules/@antv/g2/src/util/bbox.ts","../node_modules/@antv/g2/src/util/coordinate.ts","../node_modules/@antv/g2/src/util/scale.ts","../node_modules/@antv/g2/src/util/axis.ts","../node_modules/@antv/g2/src/facet/facet.ts","../node_modules/@antv/g2/src/facet/index.ts","../node_modules/@antv/g2/src/interaction/action/base.ts","../node_modules/@antv/g2/src/interaction/action/callback.ts","../node_modules/@antv/g2/src/interaction/action/register.ts","../node_modules/@antv/g2/src/geometry/shape/util/path.ts","../node_modules/@antv/g2/src/interaction/action/util.ts","../node_modules/@antv/g2/src/interaction/context.ts","../node_modules/@antv/g2/src/interaction/interaction.ts","../node_modules/@antv/g2/src/interaction/grammar-interaction.ts","../node_modules/@antv/g2/src/interaction/index.ts","../node_modules/@antv/g2/src/theme/util/create-by-style-sheet.ts","../node_modules/@antv/g2/src/theme/style-sheet/light.ts","../node_modules/@antv/g2/src/theme/util/create-theme.ts","../node_modules/@antv/g2/src/theme/index.ts","../node_modules/@antv/g2/src/util/tooltip.ts","../node_modules/@antv/g2/src/util/padding.ts","../node_modules/@antv/g2/src/chart/controller/index.ts","../node_modules/@antv/g2/src/chart/controller/coordinate.ts","../node_modules/@antv/g2/src/chart/event.ts","../node_modules/@antv/g2/src/chart/layout/index.ts","../node_modules/@antv/g2/src/chart/util/scale-pool.ts","../node_modules/@antv/g2/src/chart/layout/padding-cal.ts","../node_modules/@antv/g2/src/chart/layout/auto.ts","../node_modules/@antv/g2/src/chart/util/sync-view-padding.ts","../node_modules/@antv/g2/src/chart/view.ts","../node_modules/@antv/g2/src/chart/chart.ts","../node_modules/@antv/g2/src/chart/controller/base.ts","../node_modules/@antv/g2/src/chart/controller/tooltip.ts","../node_modules/@antv/g2/src/animate/animation/index.ts","../node_modules/@antv/g2/src/animate/index.ts","../node_modules/@antv/g2/src/geometry/shape/constant.ts","../node_modules/@antv/g2/src/geometry/element/index.ts","../node_modules/@antv/g2/src/geometry/label/index.ts","../node_modules/@antv/g2/src/geometry/shape/base.ts","../node_modules/@antv/g2/src/geometry/util/is-model-change.ts","../node_modules/@antv/g2/src/geometry/util/parse-fields.ts","../node_modules/@antv/g2/src/geometry/util/diff.ts","../node_modules/@antv/g2/src/geometry/base.ts","../node_modules/@antv/g2/src/geometry/util/group-data.ts","../node_modules/@antv/g2/src/util/transform.ts","../node_modules/@antv/g2/src/geometry/label/util/index.ts","../node_modules/@antv/g2/src/component/update-label.ts","../node_modules/@antv/g2/src/component/labels.ts","../node_modules/@antv/g2/src/geometry/label/base.ts","../node_modules/@antv/g2/src/util/attr.ts","../node_modules/@antv/g2/src/util/marker.ts","../node_modules/@antv/g2/src/util/legend.ts","../node_modules/@antv/g2/src/geometry/shape/util/get-path-points.ts","../node_modules/@antv/g2/src/geometry/shape/util/get-style.ts","../node_modules/@antv/g2/src/geometry/shape/util/split-points.ts","../node_modules/@antv/g2/src/geometry/shape/line/util.ts","../node_modules/@antv/g2/src/geometry/shape/line/index.ts","../node_modules/@antv/g2/src/core.ts","../node_modules/@antv/g2/src/theme/style-sheet/dark.ts","../node_modules/@antv/g-canvas/src/util/util.ts","../node_modules/@antv/g-canvas/src/util/parse.ts","../node_modules/@antv/g-canvas/src/util/arc-params.ts","../node_modules/@antv/g-canvas/src/util/arrow.ts","../node_modules/@antv/g-canvas/src/util/draw.ts","../node_modules/@antv/g-canvas/src/group.ts","../node_modules/@antv/g-canvas/src/shape/base.ts","../node_modules/@antv/g-canvas/src/shape/circle.ts","../node_modules/@antv/g-canvas/src/shape/ellipse.ts","../node_modules/@antv/g-canvas/src/shape/image.ts","../node_modules/@antv/g-canvas/src/util/in-stroke/line.ts","../node_modules/@antv/g-canvas/src/shape/line.ts","../node_modules/@antv/g-canvas/src/shape/marker.ts","../node_modules/@antv/g-canvas/src/util/in-path/point-in-path.ts","../node_modules/@antv/g-canvas/src/util/in-path/polygon.ts","../node_modules/@antv/g-canvas/src/util/in-stroke/arc.ts","../node_modules/@antv/g-canvas/src/util/path.ts","../node_modules/@antv/g-canvas/src/shape/path.ts","../node_modules/@antv/g-canvas/src/util/in-stroke/polyline.ts","../node_modules/@antv/g-canvas/src/shape/polygon.ts","../node_modules/@antv/g-canvas/src/shape/polyline.ts","../node_modules/@antv/g-canvas/src/shape/rect.ts","../node_modules/@antv/g-canvas/src/util/in-stroke/rect-radius.ts","../node_modules/@antv/g-canvas/src/util/in-stroke/rect.ts","../node_modules/@antv/g-canvas/src/shape/text.ts","../node_modules/@antv/g-canvas/src/util/hit.ts","../node_modules/@antv/g-canvas/src/canvas.ts","../node_modules/@antv/g-canvas/src/index.ts","../node_modules/@antv/g-svg/src/constant.ts","../node_modules/@antv/g-svg/src/util/dom.ts","../node_modules/@antv/g-svg/src/util/svg.ts","../node_modules/@antv/g-svg/src/util/draw.ts","../node_modules/@antv/g-svg/src/group.ts","../node_modules/@antv/g-svg/src/shape/base.ts","../node_modules/@antv/g-svg/src/shape/circle.ts","../node_modules/@antv/g-svg/src/shape/dom.ts","../node_modules/@antv/g-svg/src/shape/ellipse.ts","../node_modules/@antv/g-svg/src/shape/image.ts","../node_modules/@antv/g-svg/src/shape/line.ts","../node_modules/@antv/g-svg/src/shape/marker/symbols.ts","../node_modules/@antv/g-svg/src/shape/marker/index.ts","../node_modules/@antv/g-svg/src/shape/path.ts","../node_modules/@antv/g-svg/src/shape/polygon.ts","../node_modules/@antv/g-svg/src/shape/polyline.ts","../node_modules/@antv/g-svg/src/shape/rect.ts","../node_modules/@antv/g-svg/src/util/format.ts","../node_modules/@antv/g-svg/src/shape/text.ts","../node_modules/@antv/g-svg/src/defs/gradient.ts","../node_modules/@antv/g-svg/src/defs/shadow.ts","../node_modules/@antv/g-svg/src/defs/arrow.ts","../node_modules/@antv/g-svg/src/defs/clip.ts","../node_modules/@antv/g-svg/src/defs/pattern.ts","../node_modules/@antv/g-svg/src/defs/index.ts","../node_modules/@antv/g-svg/src/canvas.ts","../node_modules/@antv/g-svg/src/index.ts","../node_modules/@antv/g2/src/geometry/path.ts","../node_modules/@antv/g2/src/geometry/shape/area/util.ts","../node_modules/@antv/g2/src/geometry/shape/area/index.ts","../node_modules/@antv/g2/src/geometry/area.ts","../node_modules/@antv/g2/src/geometry/shape/edge/index.ts","../node_modules/@antv/g2/src/geometry/edge.ts","../node_modules/@antv/g2/src/geometry/heatmap.ts","../node_modules/@antv/g2/src/geometry/shape/interval/util.ts","../node_modules/@antv/g2/src/geometry/shape/interval/index.ts","../node_modules/@antv/g2/src/geometry/util/shape-size.ts","../node_modules/@antv/g2/src/geometry/interval.ts","../node_modules/@antv/g2/src/geometry/line.ts","../node_modules/@antv/g2/src/geometry/shape/point/util.ts","../node_modules/@antv/g2/src/geometry/shape/point/index.ts","../node_modules/@antv/g2/src/geometry/point.ts","../node_modules/@antv/g2/src/geometry/shape/polygon/index.ts","../node_modules/@antv/g2/src/geometry/polygon.ts","../node_modules/@antv/g2/src/geometry/schema.ts","../node_modules/@antv/g2/src/geometry/shape/schema/index.ts","../node_modules/@antv/g2/src/geometry/shape/violin/index.ts","../node_modules/@antv/g2/src/geometry/violin.ts","../node_modules/@antv/g2/src/geometry/shape/edge/util.ts","../node_modules/@antv/g2/src/geometry/shape/area/line.ts","../node_modules/@antv/g2/src/geometry/shape/area/smooth.ts","../node_modules/@antv/g2/src/geometry/shape/area/smooth-line.ts","../node_modules/@antv/g2/src/geometry/shape/edge/arc.ts","../node_modules/@antv/g2/src/geometry/shape/edge/smooth.ts","../node_modules/@antv/g2/src/geometry/shape/edge/vhv.ts","../node_modules/@antv/g2/src/geometry/shape/interval/funnel.ts","../node_modules/@antv/g2/src/geometry/shape/interval/hollow-rect.ts","../node_modules/@antv/g2/src/geometry/shape/interval/line.ts","../node_modules/@antv/g2/src/geometry/shape/interval/pyramid.ts","../node_modules/@antv/g2/src/geometry/shape/interval/tick.ts","../node_modules/@antv/g2/src/geometry/shape/line/step.ts","../node_modules/@antv/g2/src/geometry/shape/schema/box.ts","../node_modules/@antv/g2/src/geometry/shape/schema/candle.ts","../node_modules/@antv/g2/src/geometry/shape/polygon/square.ts","../node_modules/@antv/g2/src/geometry/shape/point/hollow.ts","../node_modules/@antv/g2/src/geometry/shape/point/image.ts","../node_modules/@antv/g2/src/geometry/shape/point/solid.ts","../node_modules/@antv/g2/src/geometry/shape/violin/smooth.ts","../node_modules/@antv/g2/src/geometry/shape/violin/hollow.ts","../node_modules/@antv/g2/src/geometry/label/interval.ts","../node_modules/@antv/g2/src/geometry/label/polar.ts","../node_modules/@antv/g2/src/geometry/label/pie.ts","../node_modules/@antv/g2/src/geometry/label/layout/pie/distribute.ts","../node_modules/@antv/g2/src/geometry/label/layout/pie/util.ts","../node_modules/@antv/g2/src/geometry/label/layout/pie/outer.ts","../node_modules/@antv/g2/src/geometry/label/layout/pie/spider.ts","../node_modules/@antv/g2/src/geometry/label/layout/overlap.ts","../node_modules/@antv/g2/src/util/collision-detect.ts","../node_modules/@antv/g2/src/geometry/label/util/createWorker.ts","../node_modules/@antv/g2/src/geometry/label/layout/worker/hide-overlap.ts","../node_modules/@antv/g2/src/geometry/label/layout/hide-overlap.ts","../node_modules/@antv/g2/src/util/color.ts","../node_modules/@antv/g2/src/util/context.ts","../node_modules/@antv/g2/src/geometry/label/layout/interval/adjust-position.ts","../node_modules/@antv/g2/src/geometry/label/layout/point/adjust-position.ts","../node_modules/@antv/g2/src/geometry/label/layout/path/adjust-position.ts","../node_modules/@antv/g2/src/util/text.ts","../node_modules/@antv/g2/src/animate/animation/util.ts","../node_modules/@antv/g2/src/animate/animation/sector-path-update.ts","../node_modules/@antv/g2/src/animate/animation/zoom.ts","../node_modules/@antv/g2/src/util/facet.ts","../node_modules/@antv/g2/src/facet/circle.ts","../node_modules/@antv/g2/src/facet/list.ts","../node_modules/@antv/g2/src/facet/matrix.ts","../node_modules/@antv/g2/src/facet/mirror.ts","../node_modules/@antv/g2/src/facet/rect.ts","../node_modules/@antv/g2/src/facet/tree.ts","../node_modules/@antv/g2/src/util/stat.ts","../node_modules/@antv/g2/src/util/annotation.ts","../node_modules/@antv/g2/src/chart/controller/annotation.ts","../node_modules/@antv/g2/src/util/grid.ts","../node_modules/@antv/g2/src/chart/controller/axis.ts","../node_modules/@antv/g2/src/util/direction.ts","../node_modules/@antv/g2/src/chart/controller/legend.ts","../node_modules/@antv/g2/src/chart/controller/slider.ts","../node_modules/@antv/g2/src/chart/controller/scrollbar.ts","../node_modules/@antv/g2/src/interaction/action/active-region.ts","../node_modules/@antv/g2/src/interaction/action/component/tooltip/geometry.ts","../node_modules/@antv/g2/src/interaction/action/component/tooltip/sibling.ts","../node_modules/@antv/g2/src/interaction/action/component/tooltip/ellipsis-text.ts","../node_modules/@antv/g2/src/interaction/action/element/state-base.ts","../node_modules/@antv/g2/src/interaction/action/element/state.ts","../node_modules/@antv/g2/src/interaction/action/element/active.ts","../node_modules/@antv/g2/src/interaction/action/element/link-by-color.ts","../node_modules/@antv/g2/src/interaction/action/element/range-state.ts","../node_modules/@antv/g2/src/interaction/action/element/range-active.ts","../node_modules/@antv/g2/src/interaction/action/element/single-state.ts","../node_modules/@antv/g2/src/interaction/action/element/single-active.ts","../node_modules/@antv/g2/src/interaction/action/element/highlight-util.ts","../node_modules/@antv/g2/src/interaction/action/element/highlight.ts","../node_modules/@antv/g2/src/interaction/action/element/range-highlight.ts","../node_modules/@antv/g2/src/interaction/action/element/highlight-by-color.ts","../node_modules/@antv/g2/src/interaction/action/element/highlight-by-x.ts","../node_modules/@antv/g2/src/interaction/action/element/single-highlight.ts","../node_modules/@antv/g2/src/interaction/action/element/range-selected.ts","../node_modules/@antv/g2/src/interaction/action/element/selected.ts","../node_modules/@antv/g2/src/interaction/action/element/single-selected.ts","../node_modules/@antv/g2/src/interaction/action/component/list-state.ts","../node_modules/@antv/g2/src/interaction/action/component/list-active.ts","../node_modules/@antv/g2/src/interaction/action/component/list-highlight-util.ts","../node_modules/@antv/g2/src/interaction/action/component/list-highlight.ts","../node_modules/@antv/g2/src/interaction/action/component/list-selected.ts","../node_modules/@antv/g2/src/interaction/action/component/list-unchecked.ts","../node_modules/@antv/g2/src/interaction/action/component/list-checked.ts","../node_modules/@antv/g2/src/interaction/action/component/list-focus.ts","../node_modules/@antv/g2/src/interaction/action/component/list-radio.ts","../node_modules/@antv/g2/src/interaction/action/mask/base.ts","../node_modules/@antv/g2/src/interaction/action/mask/circle.ts","../node_modules/@antv/g2/src/interaction/action/mask/rect.ts","../node_modules/@antv/g2/src/interaction/action/mask/dim-rect.ts","../node_modules/@antv/g2/src/interaction/action/mask/path.ts","../node_modules/@antv/g2/src/interaction/action/mask/smooth-path.ts","../node_modules/@antv/g2/src/interaction/action/data/range-filter.ts","../node_modules/@antv/g2/src/interaction/action/mask/multiple/base.ts","../node_modules/@antv/g2/src/interaction/action/mask/multiple/rect.ts","../node_modules/@antv/g2/src/interaction/action/mask/multiple/dim-rect.ts","../node_modules/@antv/g2/src/interaction/action/mask/multiple/circle.ts","../node_modules/@antv/g2/src/interaction/action/mask/multiple/path.ts","../node_modules/@antv/g2/src/interaction/action/mask/multiple/smooth-path.ts","../node_modules/@antv/g2/src/interaction/action/cursor.ts","../node_modules/@antv/g2/src/interaction/action/data/filter.ts","../node_modules/@antv/g2/src/interaction/action/data/sibling-filter.ts","../node_modules/@antv/g2/src/interaction/action/element/filter.ts","../node_modules/@antv/g2/src/interaction/action/element/sibling-filter.ts","../node_modules/@antv/g2/src/interaction/action/view/button.ts","../node_modules/@antv/g2/src/interaction/action/view/drag.ts","../node_modules/@antv/g2/src/interaction/action/view/move.ts","../node_modules/@antv/g2/src/interaction/action/view/scale-transform.ts","../node_modules/@antv/g2/src/interaction/action/view/scale-translate.ts","../node_modules/@antv/g2/src/interaction/action/view/scale-zoom.ts","../node_modules/@antv/g2/src/interaction/action/view/mousewheel-scroll.ts","../node_modules/@antv/g2/src/interaction/action/component/axis/axis-description.ts","../node_modules/@antv/g2/src/index.ts","../node_modules/@antv/g2/src/geometry/label/layout/limit-in-shape.ts","../node_modules/@antv/g2/src/geometry/label/layout/limit-in-canvas.ts","../node_modules/@antv/g2/src/geometry/label/layout/limit-in-plot.ts","../node_modules/@antv/g2/src/geometry/label/layout/adjust-color.ts","../node_modules/@antv/g2/src/geometry/label/layout/interval/hide-overlap.ts","../node_modules/@antv/g2/src/animate/animation/fade.ts","../node_modules/@antv/g2/src/animate/animation/grow-in.ts","../node_modules/@antv/g2/src/animate/animation/scale-in.ts","../node_modules/@antv/g2/src/animate/animation/wave-in.ts","../node_modules/@antv/g2/src/animate/animation/position-update.ts","../node_modules/@antv/g2/src/animate/animation/path-in.ts","../node_modules/@antv/g2plot/src/constant.ts","../node_modules/@antv/g2plot/src/utils/invariant.ts","../node_modules/@antv/g2plot/src/utils/pick.ts","../node_modules/@antv/g2plot/src/utils/data.ts","../node_modules/@antv/g2plot/src/utils/deep-assign.ts","../node_modules/@antv/g2plot/src/utils/context.ts","../node_modules/@antv/g2plot/src/utils/dom.ts","../node_modules/@antv/g2plot/src/utils/flow.ts","../node_modules/@antv/g2plot/src/utils/geometry.ts","../node_modules/@antv/g2plot/src/utils/label.ts","../node_modules/@antv/g2plot/src/utils/measure-text.ts","../node_modules/@antv/g2plot/src/utils/number.ts","../node_modules/@antv/g2plot/src/utils/padding.ts","../node_modules/@antv/g2plot/src/utils/path.ts","../node_modules/@antv/g2plot/src/utils/kebab-case.ts","../node_modules/@antv/g2plot/src/utils/statistic.ts","../node_modules/@antv/g2plot/src/utils/template.ts","../node_modules/@antv/g2plot/src/utils/view.ts","../node_modules/@antv/g2plot/src/utils/pattern/util.ts","../node_modules/@antv/g2plot/src/utils/pattern/dot.ts","../node_modules/@antv/g2plot/src/utils/pattern/line.ts","../node_modules/@antv/g2plot/src/utils/pattern/square.ts","../node_modules/@antv/g2plot/src/utils/pattern/index.ts","../node_modules/@antv/g2plot/src/adaptor/pattern.ts","../node_modules/@antv/g2plot/src/adaptor/common.ts","../node_modules/@antv/g2plot/src/core/global.ts","../node_modules/@antv/g2plot/src/core/locale.ts","../node_modules/@antv/g2plot/src/utils/tooltip.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/base.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/area.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/edge.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/interval.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/line.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/point.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/polygon.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/schema.ts","../node_modules/@antv/g2plot/src/core/plot.ts","../node_modules/@antv/g2plot/src/utils/transform/percent.ts","../node_modules/@antv/g2plot/src/plots/line/adaptor.ts","../node_modules/@antv/g2plot/src/plots/area/adaptor.ts","../node_modules/@antv/g2plot/src/plots/area/constants.ts","../node_modules/@antv/g2plot/src/plots/area/index.ts","../node_modules/@antv/g2plot/src/interactions/actions/reset-button.ts","../node_modules/@antv/g2plot/src/interactions/brush.ts","../node_modules/@antv/g2plot/src/adaptor/brush.ts","../node_modules/@antv/g2plot/src/adaptor/connected-area.ts","../node_modules/@antv/g2plot/src/utils/conversion.ts","../node_modules/@antv/g2plot/src/adaptor/conversion-tag.ts","../node_modules/@antv/g2plot/src/plots/column/adaptor.ts","../node_modules/@antv/g2plot/src/plots/bar/adaptor.ts","../node_modules/@antv/g2plot/src/plots/bar/constants.ts","../node_modules/@antv/g2plot/src/plots/bar/index.ts","../node_modules/@antv/g2plot/src/plots/column/constants.ts","../node_modules/@antv/g2plot/src/plots/column/index.ts","../node_modules/@antv/g2plot/src/plots/funnel/constant.ts","../node_modules/@antv/g2plot/src/plots/funnel/geometries/common.ts","../node_modules/@antv/g2plot/src/plots/funnel/geometries/basic.ts","../node_modules/@antv/g2plot/src/plots/funnel/geometries/compare.ts","../node_modules/@antv/g2plot/src/plots/funnel/geometries/dynamic-height.ts","../node_modules/@antv/g2plot/src/plots/funnel/geometries/facet.ts","../node_modules/@antv/g2plot/src/plots/funnel/interactions/funnel-conversion-tag.ts","../node_modules/@antv/g2plot/src/plots/funnel/interactions/index.ts","../node_modules/@antv/g2plot/src/plots/funnel/adaptor.ts","../node_modules/@antv/g2plot/src/plots/funnel/index.ts","../node_modules/@antv/g2plot/src/plots/gauge/constants.ts","../node_modules/@antv/g2plot/src/plots/gauge/utils.ts","../node_modules/@antv/g2plot/src/plots/gauge/adaptor.ts","../node_modules/@antv/g2plot/src/plots/gauge/shapes/indicator.ts","../node_modules/@antv/g2plot/src/plots/gauge/shapes/meter-gauge.ts","../node_modules/@antv/g2plot/src/plots/gauge/index.ts","../node_modules/@antv/g2plot/src/utils/transform/histogram.ts","../node_modules/@antv/g2plot/src/plots/histogram/constant.ts","../node_modules/@antv/g2plot/src/plots/histogram/adaptor.ts","../node_modules/@antv/g2plot/src/plots/histogram/index.ts","../node_modules/@antv/g2plot/src/plots/line/constants.ts","../node_modules/@antv/g2plot/src/plots/line/interactions/marker-active.ts","../node_modules/@antv/g2plot/src/plots/line/interactions/index.ts","../node_modules/@antv/g2plot/src/plots/line/index.ts","../node_modules/@antv/g2plot/src/plots/pie/contants.ts","../node_modules/@antv/g2plot/src/utils/matrix.ts","../node_modules/@antv/g2plot/src/plots/pie/interactions/actions/legend-active.ts","../node_modules/@antv/g2plot/src/plots/pie/interactions/actions/statistic-active.ts","../node_modules/@antv/g2plot/src/plots/pie/interactions/util.ts","../node_modules/@antv/g2plot/src/plots/pie/interactions/index.ts","../node_modules/@antv/g2plot/src/plots/pie/utils.ts","../node_modules/@antv/g2plot/src/plots/pie/adaptor.ts","../node_modules/@antv/g2plot/src/plots/pie/index.ts","../node_modules/@antv/g2plot/src/plots/progress/constants.ts","../node_modules/@antv/g2plot/src/plots/progress/utils.ts","../node_modules/@antv/g2plot/src/plots/progress/adaptor.ts","../node_modules/@antv/g2plot/src/plots/progress/index.ts","../node_modules/@antv/g2plot/src/plots/ring-progress/adaptor.ts","../node_modules/@antv/g2plot/src/plots/ring-progress/constants.ts","../node_modules/@antv/g2plot/src/plots/ring-progress/index.ts","../node_modules/@antv/g2plot/src/plots/scatter/util.ts","../node_modules/@antv/g2plot/src/plots/scatter/adaptor.ts","../node_modules/@antv/g2plot/src/plots/scatter/constant.ts","../node_modules/@antv/g2plot/src/interactions/drag-move.ts","../node_modules/@antv/g2plot/src/plots/scatter/index.ts","../node_modules/@antv/g2plot/src/plots/stock/constant.ts","../node_modules/@antv/g2plot/src/plots/stock/utils.ts","../node_modules/@antv/g2plot/src/plots/stock/adaptor.ts","../node_modules/@antv/g2plot/src/plots/stock/index.ts","../node_modules/@antv/g2plot/src/plots/tiny-line/utils.ts","../node_modules/@antv/g2plot/src/plots/tiny-line/constants.ts","../node_modules/@antv/g2plot/src/plots/tiny-area/adaptor.ts","../node_modules/@antv/g2plot/src/plots/tiny-area/constants.ts","../node_modules/@antv/g2plot/src/plots/tiny-area/index.ts","../node_modules/@antv/g2plot/src/plots/tiny-column/adaptor.ts","../node_modules/@antv/g2plot/src/plots/tiny-column/constants.ts","../node_modules/@antv/g2plot/src/plots/tiny-column/index.ts","../node_modules/@antv/g2plot/src/plots/tiny-line/adaptor.ts","../node_modules/@antv/g2plot/src/plots/tiny-line/index.ts","../node_modules/@antv/g2plot/src/plots/mix/utils.ts","../node_modules/@antv/g2plot/src/plots/mix/adaptor.ts","../node_modules/@antv/g2plot/src/plots/mix/interactions/association.ts","../node_modules/@antv/g2plot/src/plots/mix/interactions/utils.ts","../node_modules/@antv/g2plot/src/plots/mix/index.ts","../node_modules/@antv/g2plot/src/lab.ts","../node_modules/@antv/g2plot/src/plots/bidirectional-bar/constant.ts","../node_modules/@antv/g2plot/src/plots/bidirectional-bar/utils.ts","../node_modules/@antv/g2plot/src/plots/bidirectional-bar/adaptor.ts","../node_modules/@antv/g2plot/src/plots/bidirectional-bar/index.ts","../node_modules/@antv/g2plot/src/plots/box/constant.ts","../node_modules/@antv/g2plot/src/plots/box/utils.ts","../node_modules/@antv/g2plot/src/plots/box/adaptor.ts","../node_modules/@antv/g2plot/src/plots/box/index.ts","../node_modules/@antv/g2plot/src/plots/bullet/utils.ts","../node_modules/@antv/g2plot/src/plots/bullet/adaptor.ts","../node_modules/@antv/g2plot/src/plots/bullet/constant.ts","../node_modules/@antv/g2plot/src/utils/transform/chord.ts","../node_modules/@antv/g2plot/src/plots/bullet/index.ts","../node_modules/@antv/g2plot/src/plots/chord/constant.ts","../node_modules/@antv/g2plot/src/plots/chord/adaptor.ts","../node_modules/@antv/g2plot/src/plots/chord/index.ts","../node_modules/@antv/g2plot/src/plots/circle-packing/constant.ts","../node_modules/@antv/g2plot/src/interactions/actions/drill-down.ts","../node_modules/d3-hierarchy/src/pack/enclose.js","../node_modules/d3-hierarchy/src/array.js","../node_modules/d3-hierarchy/src/pack/siblings.js","../node_modules/d3-hierarchy/src/accessors.js","../node_modules/d3-hierarchy/src/constant.js","../node_modules/d3-hierarchy/src/pack/index.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/@antv/g2plot/src/utils/hierarchy/util.ts","../node_modules/@antv/g2plot/src/utils/hierarchy/pack.ts","../node_modules/@antv/g2plot/src/plots/circle-packing/utils.ts","../node_modules/@antv/g2plot/src/plots/circle-packing/adaptor.ts","../node_modules/@antv/g2plot/src/interactions/drill-down.ts","../node_modules/@antv/g2plot/src/plots/circle-packing/index.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/types.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/constant.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/util/option.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/util/legend.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/util/render-sider.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/adaptor.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/util/geometry.ts","../node_modules/@antv/g2plot/src/plots/dual-axes/index.ts","../node_modules/@antv/g2plot/src/plots/facet/adaptor.ts","../node_modules/@antv/g2plot/src/plots/facet/utils.ts","../node_modules/@antv/g2plot/src/plots/facet/constant.ts","../node_modules/@antv/g2plot/src/plots/facet/index.ts","../node_modules/@antv/g2plot/src/plots/heatmap/adaptor.ts","../node_modules/@antv/g2plot/src/plots/heatmap/constant.ts","../node_modules/@antv/g2plot/src/plots/heatmap/shapes/circle.ts","../node_modules/@antv/g2plot/src/plots/heatmap/shapes/square.ts","../node_modules/@antv/g2plot/src/plots/heatmap/index.ts","../node_modules/@antv/g2plot/src/plots/liquid/utils.ts","../node_modules/@antv/g2plot/src/plots/liquid/adaptor.ts","../node_modules/@antv/g2plot/src/plots/liquid/constants.ts","../node_modules/@antv/g2plot/src/plots/liquid/shapes/liquid.ts","../node_modules/@antv/g2plot/src/plots/liquid/index.ts","../node_modules/@antv/g2plot/src/plots/radar/adaptor.ts","../node_modules/@antv/g2plot/src/plots/radar/interactions/radar-tooltip-action.ts","../node_modules/@antv/g2plot/src/plots/radar/interactions/index.ts","../node_modules/@antv/g2plot/src/plots/radar/index.ts","../node_modules/@antv/g2plot/src/plots/radial-bar/utils.ts","../node_modules/@antv/g2plot/src/plots/radial-bar/adaptor.ts","../node_modules/@antv/g2plot/src/plots/radial-bar/constant.ts","../node_modules/@antv/g2plot/src/plots/radial-bar/index.ts","../node_modules/@antv/g2plot/src/plots/rose/adaptor.ts","../node_modules/@antv/g2plot/src/plots/rose/constant.ts","../node_modules/@antv/g2plot/src/plots/sankey/constant.ts","../node_modules/@antv/g2plot/src/plots/rose/index.ts","../node_modules/@antv/g2plot/src/plots/sankey/circle.ts","../node_modules/@antv/g2plot/src/plots/sankey/sankey/align.ts","../node_modules/@antv/g2plot/src/plots/sankey/sankey/helper.ts","../node_modules/@antv/g2plot/src/plots/sankey/sankey/sankey.ts","../node_modules/@antv/g2plot/src/plots/sankey/layout.ts","../node_modules/@antv/g2plot/src/plots/sankey/helper.ts","../node_modules/@antv/g2plot/src/plots/sankey/adaptor.ts","../node_modules/@antv/g2plot/src/plots/sankey/interactions/actions/node-drag.ts","../node_modules/@antv/g2plot/src/plots/sankey/interactions/node-draggable.ts","../node_modules/@antv/g2plot/src/plots/sankey/index.ts","../node_modules/@antv/g2plot/src/plots/sunburst/constant.ts","../node_modules/d3-hierarchy/src/treemap/round.js","../node_modules/d3-hierarchy/src/treemap/dice.js","../node_modules/d3-hierarchy/src/partition.js","../node_modules/@antv/g2plot/src/utils/hierarchy/partition.ts","../node_modules/d3-hierarchy/src/cluster.js","../node_modules/d3-hierarchy/src/stratify.js","../node_modules/d3-hierarchy/src/tree.js","../node_modules/d3-hierarchy/src/treemap/slice.js","../node_modules/d3-hierarchy/src/treemap/squarify.js","../node_modules/d3-hierarchy/src/treemap/index.js","../node_modules/d3-hierarchy/src/treemap/binary.js","../node_modules/d3-hierarchy/src/treemap/sliceDice.js","../node_modules/d3-hierarchy/src/treemap/resquarify.js","../node_modules/@antv/g2plot/src/utils/hierarchy/treemap.ts","../node_modules/@antv/g2plot/src/plots/sunburst/utils.ts","../node_modules/@antv/g2plot/src/plots/sunburst/adaptor.ts","../node_modules/@antv/g2plot/src/plots/sunburst/index.ts","../node_modules/@antv/g2plot/src/plots/treemap/utils.ts","../node_modules/@antv/g2plot/src/plots/treemap/adaptor.ts","../node_modules/@antv/g2plot/src/plots/treemap/constant.ts","../node_modules/@antv/g2plot/src/plots/venn/constant.ts","../node_modules/@antv/g2plot/src/plots/treemap/index.ts","../node_modules/@antv/g2plot/src/plots/venn/interactions/util.ts","../node_modules/@antv/g2plot/src/plots/venn/interactions/actions/active.ts","../node_modules/@antv/g2plot/src/plots/venn/interactions/actions/highlight.ts","../node_modules/@antv/g2plot/src/plots/venn/interactions/actions/selected.ts","../node_modules/@antv/g2plot/src/plots/venn/interactions/index.ts","../node_modules/@antv/g2plot/src/plots/venn/label.ts","../node_modules/lodash-es/isArray.js","../node_modules/@antv/g2plot/node_modules/@antv/path-util/src/parse-path-string.ts","../node_modules/@antv/g2plot/node_modules/@antv/path-util/src/process/arc-2-cubic.ts","../node_modules/@antv/g2plot/src/plots/venn/shape.ts","../node_modules/@antv/g2plot/src/utils/color/blend.ts","../node_modules/@antv/g2plot/src/plots/venn/layout/circleintersection.ts","../node_modules/@antv/g2plot/src/plots/venn/layout/diagram.ts","../node_modules/@antv/g2plot/src/plots/venn/layout/layout.ts","../node_modules/@antv/g2plot/src/plots/venn/utils.ts","../node_modules/@antv/g2plot/src/plots/venn/adaptor.ts","../node_modules/@antv/g2plot/src/plots/venn/index.ts","../node_modules/@antv/g2plot/src/plots/violin/constant.ts","../node_modules/@antv/g2plot/src/utils/transform/quantile.ts","../node_modules/@antv/g2plot/src/plots/violin/utils.ts","../node_modules/@antv/g2plot/src/plots/violin/adaptor.ts","../node_modules/@antv/g2plot/src/adaptor/geometries/violin.ts","../node_modules/@antv/g2plot/src/plots/violin/index.ts","../node_modules/@antv/g2plot/src/plots/waterfall/constant.ts","../node_modules/@antv/g2plot/src/plots/waterfall/utils.ts","../node_modules/@antv/g2plot/src/plots/waterfall/adaptor.ts","../node_modules/@antv/g2plot/src/plots/waterfall/shape.ts","../node_modules/@antv/g2plot/src/plots/waterfall/index.ts","../node_modules/@antv/g2plot/src/plots/word-cloud/constant.ts","../node_modules/@antv/g2plot/src/utils/transform/word-cloud.ts","../node_modules/@antv/g2plot/src/plots/word-cloud/utils.ts","../node_modules/@antv/g2plot/src/plots/word-cloud/adaptor.ts","../node_modules/@antv/g2plot/src/plots/word-cloud/shapes/word-cloud.ts","../node_modules/@antv/g2plot/src/plots/word-cloud/index.ts","../node_modules/@antv/g2plot/src/plugin/index.ts","../node_modules/@antv/g2plot/src/index.ts","../node_modules/@antv/g2plot/src/locales/en_US.ts","../node_modules/@antv/g2plot/src/locales/zh_CN.ts","../node_modules/@ant-design/plots/es/utils/render.js","../node_modules/@ant-design/plots/es/utils/createNode.js","../node_modules/@ant-design/plots/es/utils/utils.js","../node_modules/@ant-design/plots/es/hooks/useChart.js","../node_modules/@ant-design/plots/es/utils/getChart.js","../node_modules/@ant-design/plots/es/errorBoundary/index.js","../node_modules/react-content-loader/src/shared/uid.ts","../node_modules/react-content-loader/src/web/Svg.tsx","../node_modules/react-content-loader/src/web/ContentLoader.tsx","../node_modules/react-content-loader/src/web/presets/FacebookStyle.tsx","../node_modules/@ant-design/plots/es/utils/createLoading.js","../node_modules/@ant-design/plots/es/components/dual-axes/index.js","Layout/Chart/CustomColumnLine/index.tsx","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","screens/DashBoard/index.tsx","screens/crm/customer/services/index.ts","screens/crm/customer/pages/listCustomer/slice.ts","screens/crm/customer/components/searchComponent.tsx","screens/crm/customer/pages/listCustomer/component.tsx","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.ts","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.ts","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.interpolation.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/helpers/helpers.segment.js","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/controllers/controller.bar.js","../node_modules/chart.js/src/controllers/controller.bubble.js","../node_modules/chart.js/src/controllers/controller.doughnut.js","../node_modules/chart.js/src/controllers/controller.line.js","../node_modules/chart.js/src/controllers/controller.polarArea.js","../node_modules/chart.js/src/controllers/controller.pie.js","../node_modules/chart.js/src/controllers/controller.radar.js","../node_modules/chart.js/src/controllers/controller.scatter.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/elements/element.arc.ts","../node_modules/chart.js/src/elements/element.line.js","../node_modules/chart.js/src/elements/element.point.ts","../node_modules/chart.js/src/elements/element.bar.js","../node_modules/chart.js/src/plugins/plugin.colors.ts","../node_modules/chart.js/src/plugins/plugin.decimation.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.segment.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.helper.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.options.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.stack.js","../node_modules/chart.js/src/plugins/plugin.filler/simpleArc.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.drawing.js","../node_modules/chart.js/src/plugins/plugin.filler/index.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.title.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","../node_modules/chart.js/src/scales/scale.timeseries.js","../node_modules/chart.js/src/index.ts","../node_modules/chart.js/auto/auto.js","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","screens/crm/customer/components/dashboardDetailTab/debtChart.tsx","screens/crm/customer/components/dashboardDetailTab/totalOrdersChart.tsx","../node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.esm.js","screens/crm/customer/components/dashboardDetailTab/transactionChart.tsx","screens/crm/customer/components/dashboardDetailTab/warrantyChart.tsx","screens/crm/customer/components/dashboard.tsx","assets/img/total.svg","screens/crm/customer/components/buyAddressView.tsx","assets/img/avg.svg","assets/img/totalPrice.svg","screens/crm/customer/components/customerInfoView.tsx","screens/crm/customer/components/opportunityDetailTab/debtControl.tsx","screens/crm/customer/components/opportunityDetailTab/transactionHistory.tsx","screens/crm/customer/components/opportunityDetailTab/warrantyHistory.tsx","screens/crm/customer/components/opportunityDetailTab/complaintHistory.tsx","screens/crm/customer/components/opportunityDetailTab/impactHistory.tsx","screens/crm/customer/components/opportunityDetailTab/survey.tsx","screens/crm/customer/components/dataHistory.tsx","screens/crm/customer/components/opportunity.tsx","screens/crm/customer/components/customerDetail360/blockInfoDetail.tsx","../node_modules/@ant-design/icons-svg/es/asn/GlobalOutlined.js","../node_modules/@ant-design/icons/es/icons/GlobalOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/IdcardOutlined.js","../node_modules/@ant-design/icons/es/icons/IdcardOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CreditCardOutlined.js","../node_modules/@ant-design/icons/es/icons/CreditCardOutlined.js","../node_modules/rc-steps/es/Step.js","../node_modules/rc-steps/es/Steps.js","../node_modules/rc-steps/es/index.js","../node_modules/antd/es/steps/style/custom-icon.js","../node_modules/antd/es/steps/style/index.js","../node_modules/antd/es/steps/style/label-placement.js","../node_modules/antd/es/steps/style/nav.js","../node_modules/antd/es/steps/style/progress.js","../node_modules/antd/es/steps/style/progress-dot.js","../node_modules/antd/es/steps/style/rtl.js","../node_modules/antd/es/steps/style/small.js","../node_modules/antd/es/steps/style/vertical.js","../node_modules/antd/es/steps/style/inline.js","../node_modules/antd/es/steps/index.js","../node_modules/antd/es/steps/useLegacyItems.js","screens/crm/customer/components/customerDetail360/blockInfoView.tsx","screens/crm/customer/pages/detailCustomer/blockInfo.tsx","routers/index.tsx","App.tsx","app/components/loading/index.tsx","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","screens/screensReducer.tsx","app/store.ts","serviceWorker.ts","index.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","utils/configServices.ts","utils/index.ts","../node_modules/@antv/event-emitter/src/index.ts","../node_modules/@antv/g-base/src/abstract/base.ts","../node_modules/d3-timer/src/timer.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../node_modules/@antv/g-base/src/util/color.ts","../node_modules/@antv/g-base/src/animate/timeline.ts","../node_modules/@antv/g-base/src/event/event-contoller.ts","../node_modules/@antv/g-base/src/abstract/canvas.ts","../node_modules/@antv/g-base/src/abstract/container.ts","../node_modules/@antv/g-base/src/abstract/element.ts","../node_modules/@antv/g-base/src/abstract/group.ts","../node_modules/@antv/g-base/src/abstract/shape.ts","../node_modules/d3-ease/src/linear.js","../node_modules/d3-ease/src/quad.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-ease/src/poly.js","../node_modules/d3-ease/src/sin.js","../node_modules/d3-ease/src/math.js","../node_modules/d3-ease/src/exp.js","../node_modules/d3-ease/src/circle.js","../node_modules/d3-ease/src/bounce.js","../node_modules/d3-ease/src/back.js","../node_modules/d3-ease/src/elastic.js","../node_modules/@antv/g-base/src/animate/register.ts","../node_modules/@antv/g-base/src/bbox/register.ts","../node_modules/@antv/g-base/src/bbox/rect.ts","../node_modules/@antv/g-base/src/bbox/circle.ts","../node_modules/@antv/g-base/src/bbox/util.ts","../node_modules/@antv/g-base/src/bbox/path.ts","../node_modules/@antv/g-base/src/bbox/index.ts","../node_modules/@antv/g-base/src/bbox/polyline.ts","../node_modules/@antv/g-base/src/bbox/polygon.ts","../node_modules/@antv/g-base/src/bbox/text.ts","../node_modules/@antv/g-base/src/bbox/line.ts","../node_modules/@antv/g-base/src/bbox/ellipse.ts","../node_modules/@antv/g-base/src/event/graph-event.ts","../node_modules/@antv/g-base/src/index.ts","../node_modules/@antv/g-base/src/util/matrix.ts","../node_modules/@antv/g-base/src/util/offscreen.ts","../node_modules/@antv/g-base/src/util/path.ts","../node_modules/@antv/g-base/src/util/text.ts","../node_modules/@antv/g-base/src/util/util.ts","../node_modules/@antv/g-math/src/util.ts","../node_modules/@antv/g-math/src/line.ts","../node_modules/@antv/g-math/src/bezier.ts","../node_modules/@antv/g-math/src/quadratic.ts","../node_modules/@antv/g-math/src/cubic.ts","../node_modules/@antv/g-math/src/ellipse.ts","../node_modules/@antv/g-math/src/arc.ts","../node_modules/@antv/g-math/src/segments.ts","../node_modules/@antv/g-math/src/polyline.ts","../node_modules/@antv/matrix-util/src/ext.ts","../node_modules/@antv/path-util/src/parse-path.ts","../node_modules/@antv/path-util/src/catmull-rom-2-bezier.ts","../node_modules/@antv/path-util/src/parse-path-string.ts","../node_modules/@antv/path-util/src/path-2-absolute.ts","../node_modules/@antv/path-util/src/process/arc-2-cubic.ts","../node_modules/@antv/path-util/src/get-arc-params.ts","../node_modules/@antv/path-util/src/path-2-segments.ts","../node_modules/@antv/path-util/src/point-in-polygon.ts","../node_modules/@antv/path-util/src/get-line-intersect.ts","../node_modules/@antv/path-util/src/is-polygons-intersect.ts","../node_modules/@antv/util/src/is-array-like.ts","../node_modules/@antv/util/src/contains.ts","../node_modules/@antv/util/src/filter.ts","../node_modules/@antv/util/src/difference.ts","../node_modules/@antv/util/src/is-type.ts","../node_modules/@antv/util/src/is-function.ts","../node_modules/@antv/util/src/is-nil.ts","../node_modules/@antv/util/src/is-array.ts","../node_modules/@antv/util/src/is-object.ts","../node_modules/@antv/util/src/each.ts","../node_modules/@antv/util/src/keys.ts","../node_modules/@antv/util/src/is-match.ts","../node_modules/@antv/util/src/is-object-like.ts","../node_modules/@antv/util/src/is-plain-object.ts","../node_modules/@antv/util/src/find.ts","../node_modules/@antv/util/src/find-index.ts","../node_modules/@antv/util/src/first-value.ts","../node_modules/@antv/util/src/flatten.ts","../node_modules/@antv/util/src/max.ts","../node_modules/@antv/util/src/min.ts","../node_modules/@antv/util/src/get-range.ts","../node_modules/@antv/util/src/pull.ts","../node_modules/@antv/util/src/pull-at.ts","../node_modules/@antv/util/src/reduce.ts","../node_modules/@antv/util/src/remove.ts","../node_modules/@antv/util/src/is-string.ts","../node_modules/@antv/util/src/sort-by.ts","../node_modules/@antv/util/src/uniq.ts","../node_modules/@antv/util/src/values-of-key.ts","../node_modules/@antv/util/src/head.ts","../node_modules/@antv/util/src/last.ts","../node_modules/@antv/util/src/ends-with.ts","../node_modules/@antv/util/src/every.ts","../node_modules/@antv/util/src/some.ts","../node_modules/@antv/util/src/group-by.ts","../node_modules/@antv/util/src/group-to-map.ts","../node_modules/@antv/util/src/group.ts","../node_modules/@antv/util/src/parse-radius.ts","../node_modules/@antv/util/src/clamp.ts","../node_modules/@antv/util/src/fixed-base.ts","../node_modules/@antv/util/src/is-number.ts","../node_modules/@antv/util/src/is-number-equal.ts","../node_modules/@antv/util/src/is-integer.ts","../node_modules/@antv/util/src/is-odd.ts","../node_modules/@antv/util/src/max-by.ts","../node_modules/@antv/util/src/min-by.ts","../node_modules/@antv/util/src/mod.ts","../node_modules/@antv/util/src/to-radian.ts","../node_modules/@antv/util/src/to-degree.ts","../node_modules/@antv/util/src/to-integer.ts","../node_modules/@antv/util/src/for-in.ts","../node_modules/@antv/util/src/has-key.ts","../node_modules/@antv/util/src/has.ts","../node_modules/@antv/util/src/values.ts","../node_modules/@antv/util/src/to-string.ts","../node_modules/@antv/util/src/lower-case.ts","../node_modules/@antv/util/src/substitute.ts","../node_modules/@antv/util/src/upper-first.ts","../node_modules/@antv/util/src/get-type.ts","../node_modules/@antv/util/src/is-boolean.ts","../node_modules/@antv/util/src/is-date.ts","../node_modules/@antv/util/src/is-null.ts","../node_modules/@antv/util/src/is-prototype.ts","../node_modules/@antv/util/src/is-undefined.ts","../node_modules/@antv/util/src/is-element.ts","../node_modules/@antv/util/src/request-animation-frame.ts","../node_modules/@antv/util/src/clear-animation-frame.ts","../node_modules/@antv/util/src/augment.ts","../node_modules/@antv/util/src/clone.ts","../node_modules/@antv/util/src/debounce.ts","../node_modules/@antv/util/src/memoize.ts","../node_modules/@antv/util/src/deep-mix.ts","../node_modules/@antv/util/src/index-of.ts","../node_modules/@antv/util/src/is-empty.ts","../node_modules/@antv/util/src/is-equal.ts","../node_modules/@antv/util/src/map.ts","../node_modules/@antv/util/src/map-values.ts","../node_modules/@antv/util/src/mix.ts","../node_modules/@antv/util/src/get.ts","../node_modules/@antv/util/src/set.ts","../node_modules/@antv/util/src/pick.ts","../node_modules/@antv/util/src/omit.ts","../node_modules/@antv/util/src/throttle.ts","../node_modules/@antv/util/src/to-array.ts","../node_modules/@antv/util/src/unique-id.ts","../node_modules/@antv/util/src/noop.ts","../node_modules/@antv/util/src/size.ts","../node_modules/@antv/util/src/measure-text-width.ts","../node_modules/@antv/util/src/get-ellipsis-text.ts","../node_modules/@antv/util/src/cache.ts","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","../node_modules/classnames/index.js","../node_modules/d3-regression/dist/d3-regression.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/dayjs/plugin/weekYear.js","../node_modules/dayjs/plugin/weekday.js","../node_modules/detect-browser/es/index.js","../node_modules/fmin/build/fmin.js","../node_modules/gl-matrix/esm/common.js","../node_modules/gl-matrix/esm/mat3.js","../node_modules/gl-matrix/esm/vec2.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lodash/lodash.js","../node_modules/moment/moment.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/pdfast/src/helper.js","../node_modules/pdfast/src/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-animated-slider/build/index.js","../node_modules/react-animated-slider/node_modules/react/cjs/react.production.min.js","../node_modules/react-animated-slider/node_modules/react/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-loadable/lib/index.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/redux/es/redux.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/size-sensor/lib/constant.js","../node_modules/size-sensor/lib/debounce.js","../node_modules/size-sensor/lib/id.js","../node_modules/size-sensor/lib/index.js","../node_modules/size-sensor/lib/sensorPool.js","../node_modules/size-sensor/lib/sensors/index.js","../node_modules/size-sensor/lib/sensors/object.js","../node_modules/size-sensor/lib/sensors/resizeObserver.js","../node_modules/tslib/tslib.es6.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-toastify/src/utils/propValidator.ts","../node_modules/react-toastify/src/utils/collapseToast.ts","../node_modules/react-toastify/src/utils/cssTransition.tsx","../node_modules/react-toastify/src/utils/mapper.ts","../node_modules/react-toastify/src/core/eventManager.ts","../node_modules/react-toastify/src/components/Icons.tsx","../node_modules/react-toastify/src/hooks/useToastContainer.ts","../node_modules/react-toastify/src/hooks/useToast.ts","../node_modules/react-toastify/src/components/CloseButton.tsx","../node_modules/react-toastify/src/components/ProgressBar.tsx","../node_modules/react-toastify/src/components/Toast.tsx","../node_modules/react-toastify/src/components/Transitions.tsx","../node_modules/react-toastify/src/components/ToastContainer.tsx","../node_modules/react-toastify/src/core/toast.ts","../node_modules/react-toastify/src/utils/constant.ts","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/startup"],"sourcesContent":["import { IUserInfo, LoginForm } from \"../models/user\";\r\nimport configServices from \"../utils/configServices\";\r\nexport interface ILoginResponse {\r\n data: IUserInfo\r\n access_token: string,\r\n expiresIn: number,\r\n statusCode: number,\r\n tokenType: string,\r\n} \r\nexport const login = async (param: LoginForm) => {\r\n const response = await configServices.postService(\r\n \"auth/login\",\r\n { ...param, isAdmin: true, deviceType: \"WEB\" },\r\n false,\r\n false\r\n );\r\n return response;\r\n};\r\n\r\nexport const logOut = async () => {\r\n const response = await configServices.postService(\r\n \"auth/logout\",\r\n null,\r\n false,\r\n false\r\n );\r\n return response;\r\n};\r\n\r\nexport const getUserInfo = async (id: number) => {\r\n const response = await configServices.getService(\r\n `user/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return response;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport Config from \"../constant\";\r\nimport { get } from \"lodash\";\r\nimport { IUserInfo, LoginForm } from \"../models/user\";\r\nimport { getUserInfo, login, logOut } from \"../services/auth\";\r\nimport { setLoadingAction } from \"./commonSlice\";\r\nexport interface AuthState {\r\n userInfo: IUserInfo;\r\n}\r\n\r\nconst initialState: AuthState = {\r\n userInfo: {\r\n email: \"\",\r\n password: \"\",\r\n access_token: \"\",\r\n userId: undefined,\r\n firstName: \"\",\r\n fullName: \"\",\r\n id: 0,\r\n isActive: false,\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n },\r\n};\r\n\r\nexport const signInAction = createAsyncThunk(\r\n \"auth/signInAction\",\r\n async (loginForm: LoginForm, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n const response = await login(loginForm);\r\n\r\n const accessToken = response.access_token ? response.access_token : \"\";\r\n localStorage.setItem(Config.TOKEN, accessToken);\r\n const userInfo: any = await getUserInfo(get(response, \"user.id\", 0));\r\n \r\n dispatch(setUserInfoAction({ ...response, ...userInfo.data }));\r\n dispatch(setLoadingAction(false));\r\n\r\n return response;\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const signOutAction = createAsyncThunk(\r\n \"auth/signOutAction\",\r\n async (_, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await logOut();\r\n dispatch(setLoadingAction(false));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const AuthSlice = createSlice({\r\n name: \"auth\",\r\n initialState,\r\n reducers: {\r\n setUserInfoAction: (state, action: PayloadAction) => {\r\n state.userInfo = action.payload;\r\n },\r\n resetUserInfoAction: (state) => {\r\n state.userInfo = initialState.userInfo;\r\n },\r\n },\r\n});\r\n\r\nexport const { setUserInfoAction, resetUserInfoAction } = AuthSlice.actions;\r\n\r\nexport default AuthSlice.reducer;\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nexport interface CommonState {\r\n isLoading: boolean;\r\n}\r\n\r\nconst initialState: CommonState = {\r\n isLoading: false,\r\n};\r\n\r\nexport const CommonSlice = createSlice({\r\n name: 'common',\r\n initialState,\r\n reducers: {\r\n setLoadingAction: (state, action: PayloadAction) => {\r\n state.isLoading = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setLoadingAction } = CommonSlice.actions;\r\n\r\nexport default CommonSlice.reducer;\r\n","import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';\r\nimport type { RootState, AppDispatch } from './store';\r\n\r\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\r\nexport const useAppDispatch = () => useDispatch();\r\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\r\n","const config = {\r\n HOST_API: 'https://api.dev.elearning.viziple.com/',\r\n COMPANY: 101,\r\n TOKEN: 'token',\r\n itemsCountPerPage: 10,\r\n};\r\nexport default config;\r\n\r\nexport const RESPONSE_STATUS = {\r\n SUCESS: 200,\r\n CREATE_SUCCESS: 201,\r\n NOT_FOUND: 404,\r\n INTERVAL_SERVER: 500,\r\n FORBIDDEN: 403,\r\n ACCESS_DENIED: 401,\r\n};\r\n\r\nexport const INVALID_TOKEN = 'INVALID_TOKEN';\r\n\r\nexport const REGEX_EMAIL =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\nexport const URL_UPLOAD = `${process.env.REACT_APP_API_URL}files/upload/`;\r\nexport const URL_DOWNLOAD = `${process.env.REACT_APP_API_URL}files/download/`;\r\nexport const URL_UPLOAD_LESSON = `${process.env.REACT_APP_API_URL}files/uploads/lessons`;\r\n\r\nexport const DATE_TIME_FORMAT = 'DD/MM/YYYY';\r\n\r\n// export const TYPE_TRANSACTION = [\r\n// {\r\n// name: 'Ghi có Nạp tiền Online',\r\n// value: '1',\r\n// },\r\n// {\r\n// name: 'Ghi nợ Mua khoá học Online',\r\n// value: '2',\r\n// },\r\n// {\r\n// name: 'Ghi có Nạp tiền Chuyển khoản',\r\n// value: '3',\r\n// },\r\n// {\r\n// name: 'Ghi nợ Mua khoá học Chuyển khoản',\r\n// value: '4',\r\n// },\r\n// {\r\n// name: 'Ghi có Thu nhập khoá học',\r\n// value: '5',\r\n// },\r\n// {\r\n// name: 'Ghi có Hoa hồng',\r\n// value: '6',\r\n// },\r\n// {\r\n// name: 'Ghi có Phí thanh toán',\r\n// value: '7',\r\n// },\r\n// {\r\n// name: 'Ghi có Phí hệ thống',\r\n// value: '8',\r\n// },\r\n// {\r\n// name: 'Ghi nợ Lệnh Rút tiền',\r\n// value: '9',\r\n// },\r\n// {\r\n// name: 'Ghi nợ Admin Rút tiền',\r\n// value: '10',\r\n// },\r\n// {\r\n// name: 'Ghi nợ Mua khoá học từ tài khoản',\r\n// value: '11',\r\n// },\r\n// {\r\n// name: 'Ghi có Admin Nạp tiền',\r\n// value: '12',\r\n// },\r\n// {\r\n// name: 'Ghi có Nạp tiền huỷ Lệnh rút',\r\n// value: '13',\r\n// },\r\n// ];\r\n\r\nexport const TYPE_TRANSACTION = [\r\n {\r\n name: 'Bán khóa học',\r\n value: 'OWNER_SELL',\r\n },\r\n {\r\n name: 'Bán khóa học (cấp con bán)',\r\n value: 'REFUSER_SELL',\r\n },\r\n {\r\n name: 'Hoa hồng',\r\n value: 'REF',\r\n },\r\n {\r\n name: 'Hoa hồng (cấp con bán)',\r\n value: 'REF_SELL',\r\n },\r\n {\r\n name: 'Admin bán',\r\n value: 'ADMIN_SELL',\r\n },\r\n {\r\n name: 'Bán khóa học',\r\n value: 'ADMIN_RECHARGE',\r\n },\r\n {\r\n name: 'Mua khóa học',\r\n value: 'USER_BUY',\r\n },\r\n {\r\n name: 'Admin rút tiền',\r\n value: 'ADMIN_WITHDRAW',\r\n },\r\n {\r\n name: 'Rút tiền',\r\n value: 'WITHDRAW',\r\n },\r\n {\r\n name: 'Nạp tiền',\r\n value: 'DEPOSIT',\r\n },\r\n];\r\n\r\n// export enum TransactionName {\r\n// OWNER_SELL = 'Bán khóa học', // bán khóa học khách hàng tự chọn (người bán bán khoá học) -> hiển thị cho cấp cha. không có hoa hồng cho các cấp con\r\n// REFUSER_SELL = 'Bán khóa học', // bán khóa học cấp con bán khoá học của cấp cha -> hiển thị cho cấp cha\r\n// REF = 'Hoa hồng', // hoa hồng cấp con bán -> các cấp cha dc ăn hoa hồng\r\n// REF_SELL = 'Hoa hồng', // hoa hồng user cấp con đã bán khoá học\r\n// ADMIN_SELL = 'ADMIN_SELL', // bán khóa học admin bán khoá học trên CMS\r\n// ADMIN_RECHARGE = 'ADMIN_RECHARGE', // admin nạp tiền\r\n// USER_BUY = 'Mua khóa học', // Mua khóa học khách hàng mua cho outcome, trừ tiền kháng hàng\r\n// ADMIN_WITHDRAW = 'ADMIN_WITHDRAW', // admin rút tiền -> cms : chưa có case này\r\n// WITHDRAW = 'WITHDRAW',\r\n// DEPOSIT = 'Nạp tiền' // nạp tiền nạp tiền bằng VNPAY hoặc nap tiền khi mua khoá học online\r\n// }\r\n\r\nexport const ORDER_STATUS: any = {\r\n PROCESSING: 'Đang xử lý',\r\n COMPLETE: 'Đã hoàn thành',\r\n CANCEL: 'Hủy',\r\n LOCK: 'Khóa',\r\n ERROR: 'Lỗi',\r\n};\r\n\r\nexport const USER_ROLES: any = {\r\n USER: 'User thường',\r\n SELLER: 'User tạo khóa học',\r\n ADMIN: 'User admin',\r\n};\r\n\r\nexport const LANGUAGE: any = {\r\n VI: 'Tiếng Việt',\r\n vn: 'Tiếng Việt',\r\n en: 'Tiếng Anh',\r\n EN: 'Tiếng Anh',\r\n};\r\n\r\nexport const T1 = 'T1';\r\nexport const Fee = 'Fee';\r\n\r\nexport const PARAMS_SETTING: any = {\r\n G1: 'Tỉ lệ nhận hoa hồng',\r\n G2: 'Số cấp nhận hoa hồng',\r\n T1: 'Số tiền rút tối thiểu',\r\n Fee: 'Phí thanh toán',\r\n T2: 'Phí hệ thống',\r\n T3: 'Phí rút tiền',\r\n};\r\n\r\nexport const PARAMS_SETTING_SUFFIX: any = {\r\n G1: '%',\r\n G2: '',\r\n T1: 'VND',\r\n Fee: 'VND',\r\n T2: '%',\r\n T3: '%',\r\n};\r\n\r\nexport const OPERATOR = ['+', '-', '*', '^', '/', '(', ')'];\r\n\r\nexport const TRANSACTION_TYPE: any = {\r\n transfer: 'Chuyển Khoản',\r\n vnpay: 'Online',\r\n pay_with_balance: 'Số dư',\r\n};\r\n\r\nexport const EDITOR = {\r\n plugins:\r\n 'print preview paste importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern noneditable help charmap quickbars emoticons',\r\n imagetools_cors_hosts: ['picsum.photos'],\r\n menubar: 'file edit view insert format tools table help',\r\n toolbar:\r\n 'undo redo | bold italic underline strikethrough | fontselect fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | ltr rtl',\r\n toolbar_sticky: true,\r\n autosave_ask_before_unload: true,\r\n autosave_interval: '30s',\r\n autosave_prefix: '{path}{query}-{id}-',\r\n autosave_restore_when_empty: false,\r\n autosave_retention: '2m',\r\n image_advtab: true,\r\n link_list: [\r\n { title: 'My page 1', value: 'https://www.tiny.cloud' },\r\n { title: 'My page 2', value: 'http://www.moxiecode.com' },\r\n ],\r\n image_list: [\r\n { title: 'My page 1', value: 'https://www.tiny.cloud' },\r\n { title: 'My page 2', value: 'http://www.moxiecode.com' },\r\n ],\r\n image_class_list: [\r\n { title: 'None', value: '' },\r\n { title: 'Some class', value: 'class-name' },\r\n ],\r\n importcss_append: true,\r\n template_cdate_format: '[Date Created (CDATE): %m/%d/%Y : %H:%M:%S]',\r\n template_mdate_format: '[Date Modified (MDATE): %m/%d/%Y : %H:%M:%S]',\r\n height: 600,\r\n image_caption: true,\r\n quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',\r\n noneditable_noneditable_class: 'mceNonEditable',\r\n contextmenu: 'link image imagetools table',\r\n content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }',\r\n};\r\n\r\nexport const API_MEDIA = process.env.REACT_APP_MEDIA_URL;\r\n\r\nexport const PAGE_TYPE: any = {\r\n INTRODUCE: 'Giới thiệu',\r\n CGU: 'Điều khoản',\r\n};\r\n\r\nexport const TransactionName: any = {\r\n OWNER_SELL: 'Bán khóa học', // bán khóa học khách hàng tự chọn (người bán bán khoá học) -> hiển thị cho cấp cha. không có hoa hồng cho các cấp con\r\n REFUSER_SELL: 'Cấp con bán khóa học', // bán khóa học cấp con bán khoá học của cấp cha -> hiển thị cho cấp cha\r\n REF: 'Hoa hồng', // hoa hồng cấp con bán -> các cấp cha dc ăn hoa hồng\r\n REF_SELL: 'Hoa hồng', // hoa hồng user cấp con đã bán khoá học\r\n ADMIN_SELL: 'Admin bán', // bán khóa học admin bán khoá học trên CMS\r\n ADMIN_RECHARGE: 'Admin nạp tiền', // admin nạp tiền\r\n USER_BUY: 'Mua khóa học', // Mua khóa học khách hàng mua cho outcome, trừ tiền kháng hàng\r\n ADMIN_WITHDRAW: 'ADMIN_WITHDRAW', // admin rút tiền -> cms : chưa có case này\r\n WITHDRAW: 'Rút tiền',\r\n DEPOSIT: 'Nạp tiền', // nạp tiền nạp tiền bằng VNPAY hoặc nap tiền khi mua khoá học online\r\n FEE: 'Phí',\r\n};\r\n\r\nexport const OrderStatus: any = {\r\n CHECKOUT: 'CHECKOUT',\r\n COMPLETE: 'Hoàn Thành',\r\n CANCEL: 'Hủy',\r\n LOCK: 'Khóa',\r\n ERROR: 'Lỗi',\r\n PROCESSING: 'Đang diễn ra',\r\n DEPOSIT: 'Nạp tiền',\r\n};\r\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved\n\nexport var PersistGate =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(PersistGate, _PureComponent);\n\n function PersistGate() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, PersistGate);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(PersistGate)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n bootstrapped: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_unsubscribe\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"handlePersistorState\", function () {\n var persistor = _this.props.persistor;\n\n var _persistor$getState = persistor.getState(),\n bootstrapped = _persistor$getState.bootstrapped;\n\n if (bootstrapped) {\n if (_this.props.onBeforeLift) {\n Promise.resolve(_this.props.onBeforeLift()).finally(function () {\n return _this.setState({\n bootstrapped: true\n });\n });\n } else {\n _this.setState({\n bootstrapped: true\n });\n }\n\n _this._unsubscribe && _this._unsubscribe();\n }\n });\n\n return _this;\n }\n\n _createClass(PersistGate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);\n this.handlePersistorState();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._unsubscribe && this._unsubscribe();\n }\n }, {\n key: \"render\",\n value: function render() {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof this.props.children === 'function' && this.props.loading) console.error('redux-persist: PersistGate expects either a function child or loading prop, but not both. The loading prop will be ignored.');\n }\n\n if (typeof this.props.children === 'function') {\n return this.props.children(this.state.bootstrapped);\n }\n\n return this.state.bootstrapped ? this.props.children : this.props.loading;\n }\n }]);\n\n return PersistGate;\n}(PureComponent);\n\n_defineProperty(PersistGate, \"defaultProps\", {\n children: null,\n loading: null\n});","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\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}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","import * as React from 'react';\nexport const defaultIconPrefixCls = 'anticon';\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `ant-${suffixCls}` : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls,\n iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n Consumer: ConfigConsumer\n} = ConfigContext;","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\n// [times, realValue]\nvar Entity = /*#__PURE__*/function () {\n function Entity() {\n _classCallCheck(this, Entity);\n\n _defineProperty(this, \"cache\", new Map());\n }\n\n _createClass(Entity, [{\n key: \"get\",\n value: function get(keys) {\n return this.cache.get(keys.join('%')) || null;\n }\n }, {\n key: \"update\",\n value: function update(keys, valueFn) {\n var path = keys.join('%');\n var prevValue = this.cache.get(path);\n var nextValue = valueFn(prevValue);\n\n if (nextValue === null) {\n this.cache.delete(path);\n } else {\n this.cache.set(path, nextValue);\n }\n }\n }]);\n\n return Entity;\n}();\n\nexport default Entity;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport CacheEntity from \"./Cache\";\nexport var ATTR_TOKEN = 'data-token-hash';\nexport var ATTR_MARK = 'data-css-hash';\nexport var ATTR_DEV_CACHE_PATH = 'data-dev-cache-path'; // Mark css-in-js instance in style element\n\nexport var CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport var CSS_IN_JS_INSTANCE_ID = Math.random().toString(12).slice(2);\nexport function createCache() {\n if (typeof document !== 'undefined' && document.head && document.body) {\n var styles = document.body.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\")) || [];\n var firstChild = document.head.firstChild;\n Array.from(styles).forEach(function (style) {\n style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || CSS_IN_JS_INSTANCE_ID; // Not force move if no head\n\n document.head.insertBefore(style, firstChild);\n }); // Deduplicate of moved styles\n\n var styleHash = {};\n Array.from(document.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\"))).forEach(function (style) {\n var hash = style.getAttribute(ATTR_MARK);\n\n if (styleHash[hash]) {\n if (style[CSS_IN_JS_INSTANCE] === CSS_IN_JS_INSTANCE_ID) {\n var _style$parentNode;\n\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n } else {\n styleHash[hash] = true;\n }\n });\n }\n\n return new CacheEntity();\n}\nvar StyleContext = /*#__PURE__*/React.createContext({\n hashPriority: 'low',\n cache: createCache(),\n defaultCache: true\n});\nexport var StyleProvider = function StyleProvider(props) {\n var children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var parentContext = React.useContext(StyleContext);\n var context = useMemo(function () {\n var mergedContext = _objectSpread({}, parentContext);\n\n Object.keys(restProps).forEach(function (key) {\n var value = restProps[key];\n\n if (restProps[key] !== undefined) {\n mergedContext[key] = value;\n }\n });\n var cache = restProps.cache;\n mergedContext.cache = mergedContext.cache || createCache();\n mergedContext.defaultCache = !cache && parentContext.defaultCache;\n return mergedContext;\n }, [parentContext, restProps], function (prev, next) {\n return !isEqual(prev[0], next[0], true) || !isEqual(prev[1], next[1], true);\n });\n return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n value: context\n }, children);\n};\nexport default StyleContext;","function useProdHMR() {\n return false;\n}\n\nvar webpackHMR = false;\n\nfunction useDevHMR() {\n return webpackHMR;\n}\n\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR; // Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\n\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot) {\n var win = window;\n\n if (typeof win.webpackHotUpdate === 'function') {\n var originWebpackHotUpdate = win.webpackHotUpdate;\n\n win.webpackHotUpdate = function () {\n webpackHMR = true;\n setTimeout(function () {\n webpackHMR = false;\n }, 0);\n return originWebpackHotUpdate.apply(void 0, arguments);\n };\n }\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport StyleContext from \"../StyleContext\";\nimport useHMR from \"./useHMR\";\nexport default function useClientCache(prefix, keyPath, cacheFn, onCacheRemove) {\n var _React$useContext = React.useContext(StyleContext),\n globalCache = _React$useContext.cache;\n\n var fullPath = [prefix].concat(_toConsumableArray(keyPath));\n var HMRUpdate = useHMR(); // Create cache\n\n React.useMemo(function () {\n globalCache.update(fullPath, function (prevCache) {\n var _ref = prevCache || [],\n _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n times = _ref2$ === void 0 ? 0 : _ref2$,\n cache = _ref2[1]; // HMR should always ignore cache since developer may change it\n\n\n var tmpCache = cache;\n\n if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(tmpCache, HMRUpdate);\n tmpCache = null;\n }\n\n var mergedCache = tmpCache || cacheFn();\n return [times + 1, mergedCache];\n });\n },\n /* eslint-disable react-hooks/exhaustive-deps */\n [fullPath.join('_')]\n /* eslint-enable */\n ); // Remove if no need anymore\n\n React.useEffect(function () {\n return function () {\n globalCache.update(fullPath, function (prevCache) {\n var _ref3 = prevCache || [],\n _ref4 = _slicedToArray(_ref3, 2),\n _ref4$ = _ref4[0],\n times = _ref4$ === void 0 ? 0 : _ref4$,\n cache = _ref4[1];\n\n var nextCount = times - 1;\n\n if (nextCount === 0) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(cache, false);\n return null;\n }\n\n return [times - 1, cache];\n });\n };\n }, fullPath);\n return globalCache.get(fullPath)[1];\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nexport function flattenToken(token) {\n var str = '';\n Object.keys(token).forEach(function (key) {\n var value = token[key];\n str += key;\n\n if (value && _typeof(value) === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n return str;\n}\n/**\n * Convert derivative token to key string\n */\n\nexport function token2key(token, salt) {\n return hash(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar layerKey = \"layer-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\nvar layerWidth = '903px';\n\nfunction supportSelector(styleStr, handleElement) {\n if (canUseDom()) {\n var _ele$parentNode;\n\n updateCSS(styleStr, layerKey);\n\n var _ele = document.createElement('div');\n\n _ele.style.position = 'fixed';\n _ele.style.left = '0';\n _ele.style.top = '0';\n handleElement === null || handleElement === void 0 ? void 0 : handleElement(_ele);\n document.body.appendChild(_ele);\n\n if (process.env.NODE_ENV !== 'production') {\n _ele.innerHTML = 'Test';\n _ele.style.zIndex = '9999999';\n }\n\n var support = getComputedStyle(_ele).width === layerWidth;\n (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 ? void 0 : _ele$parentNode.removeChild(_ele);\n removeCSS(layerKey);\n return support;\n }\n\n return false;\n}\n\nvar canLayer = undefined;\nexport function supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(\"@layer \".concat(layerKey, \" { .\").concat(layerKey, \" { width: \").concat(layerWidth, \"!important; } }\"), function (ele) {\n ele.className = layerKey;\n });\n }\n\n return canLayer;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport hash from '@emotion/hash';\nimport { ATTR_TOKEN, CSS_IN_JS_INSTANCE, CSS_IN_JS_INSTANCE_ID } from \"../StyleContext\";\nimport useGlobalCache from \"./useGlobalCache\";\nimport { flattenToken, token2key } from \"../util\";\nvar EMPTY_OVERRIDE = {}; // Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\n\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar tokenKeys = new Map();\n\nfunction recordCleanToken(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\n\nfunction removeStyleTags(key) {\n if (typeof document !== 'undefined') {\n var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n styles.forEach(function (style) {\n if (style[CSS_IN_JS_INSTANCE] === CSS_IN_JS_INSTANCE_ID) {\n var _style$parentNode;\n\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n });\n }\n} // Remove will check current keys first\n\n\nfunction cleanTokenStyle(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n var tokenKeyList = Array.from(tokenKeys.keys());\n var cleanableKeyList = tokenKeyList.filter(function (key) {\n var count = tokenKeys.get(key) || 0;\n return count <= 0;\n });\n\n if (cleanableKeyList.length < tokenKeyList.length) {\n cleanableKeyList.forEach(function (key) {\n removeStyleTags(key);\n tokenKeys.delete(key);\n });\n }\n}\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\n\n\nexport default function useCacheToken(theme, tokens) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _option$salt = option.salt,\n salt = _option$salt === void 0 ? '' : _option$salt,\n _option$override = option.override,\n override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n formatToken = option.formatToken; // Basic - We do basic cache here\n\n var mergedToken = React.useMemo(function () {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n }, [tokens]);\n var tokenStr = React.useMemo(function () {\n return flattenToken(mergedToken);\n }, [mergedToken]);\n var overrideTokenStr = React.useMemo(function () {\n return flattenToken(override);\n }, [override]);\n var cachedToken = useGlobalCache('token', [salt, theme.id, tokenStr, overrideTokenStr], function () {\n var derivativeToken = theme.getDerivativeToken(mergedToken); // Merge with override\n\n var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), override); // Format if needed\n\n\n if (formatToken) {\n mergedDerivativeToken = formatToken(mergedDerivativeToken);\n } // Optimize for `useStyleRegister` performance\n\n\n var tokenKey = token2key(mergedDerivativeToken, salt);\n mergedDerivativeToken._tokenKey = tokenKey;\n recordCleanToken(tokenKey);\n var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n mergedDerivativeToken._hashId = hashId; // Not used\n\n return [mergedDerivativeToken, hashId];\n }, function (cache) {\n // Remove token will remove all related style\n cleanTokenStyle(cache[0]._tokenKey);\n });\n return cachedToken;\n}","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { lintWarning } from \"./utils\";\n\nfunction isConcatSelector(selector) {\n var _selector$match;\n\n var notContent = ((_selector$match = selector.match(/:not\\(([^)]*)\\)/)) === null || _selector$match === void 0 ? void 0 : _selector$match[1]) || ''; // split selector. e.g.\n // `h1#a.b` => ['h1', #a', '.b']\n\n var splitCells = notContent.split(/(\\[[^[]*])|(?=[.#])/).filter(function (str) {\n return str;\n });\n return splitCells.length > 1;\n}\n\nfunction parsePath(info) {\n return info.parentSelectors.reduce(function (prev, cur) {\n if (!prev) {\n return cur;\n }\n\n return cur.includes('&') ? cur.replace(/&/g, prev) : \"\".concat(prev, \" \").concat(cur);\n }, '');\n}\n\nvar linter = function linter(key, value, info) {\n var parentSelectorPath = parsePath(info);\n var notList = parentSelectorPath.match(/:not\\([^)]*\\)/g) || [];\n\n if (notList.length > 0 && notList.some(isConcatSelector)) {\n lintWarning(\"Concat ':not' selector not support in legacy browsers.\", info);\n }\n};\n\nexport default linter;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport * as React from 'react'; // @ts-ignore\n\nimport unitless from '@emotion/unitless';\nimport { compile, serialize, stringify } from 'stylis';\nimport { contentQuotesLinter, hashedAnimationLinter } from \"../linters\";\nimport StyleContext, { ATTR_DEV_CACHE_PATH, ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE, CSS_IN_JS_INSTANCE_ID } from \"../StyleContext\";\nimport { supportLayer } from \"../util\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar isClientSide = canUseDom();\nvar SKIP_CHECK = '_skip_check_';\n// ============================================================================\n// == Parser ==\n// ============================================================================\n// Preprocessor style content to browser support one\nexport function normalizeStyle(styleStr) {\n var serialized = serialize(compile(styleStr), stringify);\n return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\n\nfunction isCompoundCSSProperty(value) {\n return _typeof(value) === 'object' && value && SKIP_CHECK in value;\n} // 注入 hash 值\n\n\nfunction injectSelectorHash(key, hashId, hashPriority) {\n if (!hashId) {\n return key;\n }\n\n var hashClassName = \".\".concat(hashId);\n var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName; // 注入 hashId\n\n var keys = key.split(',').map(function (k) {\n var _firstPath$match;\n\n var fullPath = k.trim().split(/\\s+/); // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n\n var firstPath = fullPath[0] || '';\n var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n return [firstPath].concat(_toConsumableArray(fullPath.slice(1))).join(' ');\n });\n return keys.join(',');\n}\n\n// Global effect style will mount once and not removed\n// The effect will not save in SSR cache (e.g. keyframes)\nvar globalEffectStyleKeys = new Set();\n/**\n * @private Test only. Clear the global effect style keys.\n */\n\nexport var _cf = process.env.NODE_ENV !== 'production' ? function () {\n return globalEffectStyleKeys.clear();\n} : undefined; // Parse CSSObject to style content\n\nexport var parseStyle = function parseStyle(interpolation) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n root: true,\n parentSelectors: []\n },\n root = _ref.root,\n injectHash = _ref.injectHash,\n parentSelectors = _ref.parentSelectors;\n\n var hashId = config.hashId,\n layer = config.layer,\n path = config.path,\n hashPriority = config.hashPriority,\n _config$transformers = config.transformers,\n transformers = _config$transformers === void 0 ? [] : _config$transformers,\n _config$linters = config.linters,\n linters = _config$linters === void 0 ? [] : _config$linters;\n var styleStr = '';\n var effectStyle = {};\n\n function parseKeyframes(keyframes) {\n var animationName = keyframes.getName(hashId);\n\n if (!effectStyle[animationName]) {\n var _parseStyle = parseStyle(keyframes.style, config, {\n root: false,\n parentSelectors: parentSelectors\n }),\n _parseStyle2 = _slicedToArray(_parseStyle, 1),\n _parsedStr = _parseStyle2[0];\n\n effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n }\n }\n\n function flattenList(list) {\n var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n list.forEach(function (item) {\n if (Array.isArray(item)) {\n flattenList(item, fullList);\n } else if (item) {\n fullList.push(item);\n }\n });\n return fullList;\n }\n\n var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n flattenStyleList.forEach(function (originStyle) {\n // Only root level can use raw string\n var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n\n if (typeof style === 'string') {\n styleStr += \"\".concat(style, \"\\n\");\n } else if (style._keyframe) {\n // Keyframe\n parseKeyframes(style);\n } else {\n var mergedStyle = transformers.reduce(function (prev, trans) {\n var _trans$visit;\n\n return (trans === null || trans === void 0 ? void 0 : (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n }, style); // Normal CSSObject\n\n Object.keys(mergedStyle).forEach(function (key) {\n var value = mergedStyle[key];\n\n if (_typeof(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n var subInjectHash = false; // 当成嵌套对象来处理\n\n var mergedKey = key.trim(); // Whether treat child as root. In most case it is false.\n\n var nextRoot = false; // 拆分多个选择器\n\n if ((root || injectHash) && hashId) {\n if (mergedKey.startsWith('@')) {\n // 略过媒体查询,交给子节点继续插入 hashId\n subInjectHash = true;\n } else {\n // 注入 hashId\n mergedKey = injectSelectorHash(key, hashId, hashPriority);\n }\n } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n // But it does not conform to stylis syntax,\n // and finally we will get `{color:red;}` as css, which is wrong.\n // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n mergedKey = '';\n nextRoot = true;\n }\n\n var _parseStyle3 = parseStyle(value, config, {\n root: nextRoot,\n injectHash: subInjectHash,\n parentSelectors: [].concat(_toConsumableArray(parentSelectors), [mergedKey])\n }),\n _parseStyle4 = _slicedToArray(_parseStyle3, 2),\n _parsedStr2 = _parseStyle4[0],\n childEffectStyle = _parseStyle4[1];\n\n effectStyle = _objectSpread(_objectSpread({}, effectStyle), childEffectStyle);\n styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n } else {\n var _value;\n\n var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n\n if (process.env.NODE_ENV !== 'production' && (_typeof(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n [contentQuotesLinter, hashedAnimationLinter].concat(_toConsumableArray(linters)).forEach(function (linter) {\n return linter(key, actualValue, {\n path: path,\n hashId: hashId,\n parentSelectors: parentSelectors\n });\n });\n } // 如果是样式则直接插入\n\n\n var styleName = key.replace(/[A-Z]/g, function (match) {\n return \"-\".concat(match.toLowerCase());\n }); // Auto suffix with px\n\n var formatValue = actualValue;\n\n if (!unitless[key] && typeof formatValue === 'number' && formatValue !== 0) {\n formatValue = \"\".concat(formatValue, \"px\");\n } // handle animationName & Keyframe value\n\n\n if (key === 'animationName' && value !== null && value !== void 0 && value._keyframe) {\n parseKeyframes(value);\n formatValue = value.getName(hashId);\n }\n\n styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n }\n });\n }\n });\n\n if (!root) {\n styleStr = \"{\".concat(styleStr, \"}\");\n } else if (layer && supportLayer()) {\n var layerCells = layer.split(',');\n var layerName = layerCells[layerCells.length - 1].trim();\n styleStr = \"@layer \".concat(layerName, \" {\").concat(styleStr, \"}\"); // Order of layer if needed\n\n if (layerCells.length > 1) {\n // zombieJ: stylis do not support layer order, so we need to handle it manually.\n styleStr = \"@layer \".concat(layer, \"{%%%:%}\").concat(styleStr);\n }\n }\n\n return [styleStr, effectStyle];\n}; // ============================================================================\n// == Register ==\n// ============================================================================\n\nfunction uniqueHash(path, styleStr) {\n return hash(\"\".concat(path.join('%')).concat(styleStr));\n}\n\nfunction Empty() {\n return null;\n}\n/**\n * Register a style to the global style sheet.\n */\n\n\nexport default function useStyleRegister(info, styleFn) {\n var token = info.token,\n path = info.path,\n hashId = info.hashId,\n layer = info.layer;\n\n var _React$useContext = React.useContext(StyleContext),\n autoClear = _React$useContext.autoClear,\n mock = _React$useContext.mock,\n defaultCache = _React$useContext.defaultCache,\n hashPriority = _React$useContext.hashPriority,\n container = _React$useContext.container,\n ssrInline = _React$useContext.ssrInline,\n transformers = _React$useContext.transformers,\n linters = _React$useContext.linters;\n\n var tokenKey = token._tokenKey;\n var fullPath = [tokenKey].concat(_toConsumableArray(path)); // Check if need insert style\n\n var isMergedClientSide = isClientSide;\n\n if (process.env.NODE_ENV !== 'production' && mock !== undefined) {\n isMergedClientSide = mock === 'client';\n }\n\n var _useGlobalCache = useGlobalCache('style', fullPath, // Create cache if needed\n function () {\n var styleObj = styleFn();\n\n var _parseStyle5 = parseStyle(styleObj, {\n hashId: hashId,\n hashPriority: hashPriority,\n layer: layer,\n path: path.join('-'),\n transformers: transformers,\n linters: linters\n }),\n _parseStyle6 = _slicedToArray(_parseStyle5, 2),\n parsedStyle = _parseStyle6[0],\n effectStyle = _parseStyle6[1];\n\n var styleStr = normalizeStyle(parsedStyle);\n var styleId = uniqueHash(fullPath, styleStr);\n\n if (isMergedClientSide) {\n var style = updateCSS(styleStr, styleId, {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container\n });\n style[CSS_IN_JS_INSTANCE] = CSS_IN_JS_INSTANCE_ID; // Used for `useCacheToken` to remove on batch when token removed\n\n style.setAttribute(ATTR_TOKEN, tokenKey); // Dev usage to find which cache path made this easily\n\n if (process.env.NODE_ENV !== 'production') {\n style.setAttribute(ATTR_DEV_CACHE_PATH, fullPath.join('|'));\n } // Inject client side effect style\n\n\n Object.keys(effectStyle).forEach(function (effectKey) {\n if (!globalEffectStyleKeys.has(effectKey)) {\n globalEffectStyleKeys.add(effectKey); // Inject\n\n updateCSS(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container\n });\n }\n });\n }\n\n return [styleStr, tokenKey, styleId];\n }, // Remove cache if no need\n function (_ref2, fromHMR) {\n var _ref3 = _slicedToArray(_ref2, 3),\n styleId = _ref3[2];\n\n if ((fromHMR || autoClear) && isClientSide) {\n removeCSS(styleId, {\n mark: ATTR_MARK\n });\n }\n }),\n _useGlobalCache2 = _slicedToArray(_useGlobalCache, 3),\n cachedStyleStr = _useGlobalCache2[0],\n cachedTokenKey = _useGlobalCache2[1],\n cachedStyleId = _useGlobalCache2[2];\n\n return function (node) {\n var styleNode;\n\n if (!ssrInline || isMergedClientSide || !defaultCache) {\n styleNode = /*#__PURE__*/React.createElement(Empty, null);\n } else {\n var _ref4;\n\n styleNode = /*#__PURE__*/React.createElement(\"style\", _extends({}, (_ref4 = {}, _defineProperty(_ref4, ATTR_TOKEN, cachedTokenKey), _defineProperty(_ref4, ATTR_MARK, cachedStyleId), _ref4), {\n dangerouslySetInnerHTML: {\n __html: cachedStyleStr\n }\n }));\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, styleNode, node);\n };\n} // ============================================================================\n// == SSR ==\n// ============================================================================\n\nexport function extractStyle(cache) {\n // prefix with `style` is used for `useStyleRegister` to cache style context\n var styleKeys = Array.from(cache.cache.keys()).filter(function (key) {\n return key.startsWith('style%');\n }); // const tokenStyles: Record = {};\n\n var styleText = '';\n styleKeys.forEach(function (key) {\n var _ = _slicedToArray(cache.cache.get(key)[1], 3),\n styleStr = _[0],\n tokenKey = _[1],\n styleId = _[2];\n\n styleText += \"\");\n });\n return styleText;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar Keyframe = /*#__PURE__*/function () {\n function Keyframe(name, style) {\n _classCallCheck(this, Keyframe);\n\n _defineProperty(this, \"name\", void 0);\n\n _defineProperty(this, \"style\", void 0);\n\n _defineProperty(this, \"_keyframe\", true);\n\n this.name = name;\n this.style = style;\n }\n\n _createClass(Keyframe, [{\n key: \"getName\",\n value: function getName() {\n var hashId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return hashId ? \"\".concat(hashId, \"-\").concat(this.name) : this.name;\n }\n }]);\n\n return Keyframe;\n}();\n\nexport default Keyframe;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// ================================== Cache ==================================\nexport function sameDerivativeOption(left, right) {\n if (left.length !== right.length) {\n return false;\n }\n\n for (var i = 0; i < left.length; i++) {\n if (left[i] !== right[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar ThemeCache = /*#__PURE__*/function () {\n function ThemeCache() {\n _classCallCheck(this, ThemeCache);\n\n _defineProperty(this, \"cache\", void 0);\n\n _defineProperty(this, \"keys\", void 0);\n\n _defineProperty(this, \"cacheCallTimes\", void 0);\n\n this.cache = new Map();\n this.keys = [];\n this.cacheCallTimes = 0;\n }\n\n _createClass(ThemeCache, [{\n key: \"size\",\n value: function size() {\n return this.keys.length;\n }\n }, {\n key: \"internalGet\",\n value: function internalGet(derivativeOption) {\n var _cache2, _cache3;\n\n var updateCallTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var cache = {\n map: this.cache\n };\n derivativeOption.forEach(function (derivative) {\n if (!cache) {\n cache = undefined;\n } else {\n var _cache, _cache$map;\n\n cache = (_cache = cache) === null || _cache === void 0 ? void 0 : (_cache$map = _cache.map) === null || _cache$map === void 0 ? void 0 : _cache$map.get(derivative);\n }\n });\n\n if ((_cache2 = cache) !== null && _cache2 !== void 0 && _cache2.value && updateCallTimes) {\n cache.value[1] = this.cacheCallTimes++;\n }\n\n return (_cache3 = cache) === null || _cache3 === void 0 ? void 0 : _cache3.value;\n }\n }, {\n key: \"get\",\n value: function get(derivativeOption) {\n var _this$internalGet;\n\n return (_this$internalGet = this.internalGet(derivativeOption, true)) === null || _this$internalGet === void 0 ? void 0 : _this$internalGet[0];\n }\n }, {\n key: \"has\",\n value: function has(derivativeOption) {\n return !!this.internalGet(derivativeOption);\n }\n }, {\n key: \"set\",\n value: function set(derivativeOption, value) {\n var _this = this;\n\n // New cache\n if (!this.has(derivativeOption)) {\n if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n var _this$keys$reduce = this.keys.reduce(function (result, key) {\n var _result = _slicedToArray(result, 2),\n callTimes = _result[1];\n\n if (_this.internalGet(key)[1] < callTimes) {\n return [key, _this.internalGet(key)[1]];\n }\n\n return result;\n }, [this.keys[0], this.cacheCallTimes]),\n _this$keys$reduce2 = _slicedToArray(_this$keys$reduce, 1),\n targetKey = _this$keys$reduce2[0];\n\n this.delete(targetKey);\n }\n\n this.keys.push(derivativeOption);\n }\n\n var cache = this.cache;\n derivativeOption.forEach(function (derivative, index) {\n if (index === derivativeOption.length - 1) {\n cache.set(derivative, {\n value: [value, _this.cacheCallTimes++]\n });\n } else {\n var cacheValue = cache.get(derivative);\n\n if (!cacheValue) {\n cache.set(derivative, {\n map: new Map()\n });\n } else if (!cacheValue.map) {\n cacheValue.map = new Map();\n }\n\n cache = cache.get(derivative).map;\n }\n });\n }\n }, {\n key: \"deleteByPath\",\n value: function deleteByPath(currentCache, derivatives) {\n var cache = currentCache.get(derivatives[0]);\n\n if (derivatives.length === 1) {\n var _cache$value;\n\n if (!cache.map) {\n currentCache.delete(derivatives[0]);\n } else {\n currentCache.set(derivatives[0], {\n map: cache.map\n });\n }\n\n return (_cache$value = cache.value) === null || _cache$value === void 0 ? void 0 : _cache$value[0];\n }\n\n var result = this.deleteByPath(cache.map, derivatives.slice(1));\n\n if ((!cache.map || cache.map.size === 0) && !cache.value) {\n currentCache.delete(derivatives[0]);\n }\n\n return result;\n }\n }, {\n key: \"delete\",\n value: function _delete(derivativeOption) {\n // If cache exists\n if (this.has(derivativeOption)) {\n this.keys = this.keys.filter(function (item) {\n return !sameDerivativeOption(item, derivativeOption);\n });\n return this.deleteByPath(this.cache, derivativeOption);\n }\n\n return undefined;\n }\n }]);\n\n return ThemeCache;\n}();\n\n_defineProperty(ThemeCache, \"MAX_CACHE_SIZE\", 20);\n\n_defineProperty(ThemeCache, \"MAX_CACHE_OFFSET\", 5);\n\nexport { ThemeCache as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { warning } from \"rc-util/es/warning\";\nvar uuid = 0;\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\n\nvar Theme = /*#__PURE__*/function () {\n function Theme(derivatives) {\n _classCallCheck(this, Theme);\n\n _defineProperty(this, \"derivatives\", void 0);\n\n _defineProperty(this, \"id\", void 0);\n\n this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n this.id = uuid;\n\n if (derivatives.length === 0) {\n warning(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');\n }\n\n uuid += 1;\n }\n\n _createClass(Theme, [{\n key: \"getDerivativeToken\",\n value: function getDerivativeToken(token) {\n return this.derivatives.reduce(function (result, derivative) {\n return derivative(token, result);\n }, undefined);\n }\n }]);\n\n return Theme;\n}();\n\nexport { Theme as default };","import ThemeCache from \"./ThemeCache\";\nimport Theme from \"./Theme\";\nvar cacheThemes = new ThemeCache();\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\n\nexport default function createTheme(derivatives) {\n var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives]; // Create new theme if not exist\n\n if (!cacheThemes.has(derivativeArr)) {\n cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n } // Get theme from cache and return\n\n\n return cacheThemes.get(derivativeArr);\n}","function splitValues(value) {\n if (typeof value === 'number') {\n return [value];\n }\n\n var splitStyle = String(value).split(/\\s+/); // Combine styles split in brackets, like `calc(1px + 2px)`\n\n var temp = '';\n var brackets = 0;\n return splitStyle.reduce(function (list, item) {\n if (item.includes('(')) {\n temp += item;\n brackets += item.split('(').length - 1;\n } else if (item.includes(')')) {\n temp += item;\n brackets -= item.split(')').length - 1;\n\n if (brackets === 0) {\n list.push(temp);\n temp = '';\n }\n } else if (brackets > 0) {\n temp += item;\n } else {\n list.push(item);\n }\n\n return list;\n }, []);\n}\n\nfunction noSplit(list) {\n list.notSplit = true;\n return list;\n}\n\nvar keyMap = {\n // Inset\n inset: ['top', 'right', 'bottom', 'left'],\n insetBlock: ['top', 'bottom'],\n insetBlockStart: ['top'],\n insetBlockEnd: ['bottom'],\n insetInline: ['left', 'right'],\n insetInlineStart: ['left'],\n insetInlineEnd: ['right'],\n // Margin\n marginBlock: ['marginTop', 'marginBottom'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n marginInline: ['marginLeft', 'marginRight'],\n marginInlineStart: ['marginLeft'],\n marginInlineEnd: ['marginRight'],\n // Padding\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom'],\n paddingInline: ['paddingLeft', 'paddingRight'],\n paddingInlineStart: ['paddingLeft'],\n paddingInlineEnd: ['paddingRight'],\n // Border\n borderBlock: noSplit(['borderTop', 'borderBottom']),\n borderBlockStart: noSplit(['borderTop']),\n borderBlockEnd: noSplit(['borderBottom']),\n borderInline: noSplit(['borderLeft', 'borderRight']),\n borderInlineStart: noSplit(['borderLeft']),\n borderInlineEnd: noSplit(['borderRight']),\n // Border width\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndWidth: ['borderBottomWidth'],\n borderInlineWidth: ['borderLeftWidth', 'borderRightWidth'],\n borderInlineStartWidth: ['borderLeftWidth'],\n borderInlineEndWidth: ['borderRightWidth'],\n // Border style\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderInlineStyle: ['borderLeftStyle', 'borderRightStyle'],\n borderInlineStartStyle: ['borderLeftStyle'],\n borderInlineEndStyle: ['borderRightStyle'],\n // Border color\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockEndColor: ['borderBottomColor'],\n borderInlineColor: ['borderLeftColor', 'borderRightColor'],\n borderInlineStartColor: ['borderLeftColor'],\n borderInlineEndColor: ['borderRightColor'],\n // Border radius\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius']\n};\n\nfunction skipCheck(value) {\n return {\n _skip_check_: true,\n value: value\n };\n}\n/**\n * Convert css logical properties to legacy properties.\n * Such as: `margin-block-start` to `margin-top`.\n * Transform list:\n * - inset\n * - margin\n * - padding\n * - border\n */\n\n\nvar transform = {\n visit: function visit(cssObj) {\n var clone = {};\n Object.keys(cssObj).forEach(function (key) {\n var value = cssObj[key];\n var matchValue = keyMap[key];\n\n if (matchValue && (typeof value === 'number' || typeof value === 'string')) {\n var values = splitValues(value);\n\n if (matchValue.length && matchValue.notSplit) {\n // not split means always give same value like border\n matchValue.forEach(function (matchKey) {\n clone[matchKey] = skipCheck(value);\n });\n } else if (matchValue.length === 1) {\n // Handle like `marginBlockStart` => `marginTop`\n clone[matchValue[0]] = skipCheck(value);\n } else if (matchValue.length === 2) {\n // Handle like `marginBlock` => `marginTop` & `marginBottom`\n matchValue.forEach(function (matchKey, index) {\n var _values$index;\n\n clone[matchKey] = skipCheck((_values$index = values[index]) !== null && _values$index !== void 0 ? _values$index : values[0]);\n });\n } else if (matchValue.length === 4) {\n // Handle like `inset` => `top` & `right` & `bottom` & `left`\n matchValue.forEach(function (matchKey, index) {\n var _ref, _values$index2;\n\n clone[matchKey] = skipCheck((_ref = (_values$index2 = values[index]) !== null && _values$index2 !== void 0 ? _values$index2 : values[index - 2]) !== null && _ref !== void 0 ? _ref : values[0]);\n });\n } else {\n clone[key] = value;\n }\n } else {\n clone[key] = value;\n }\n });\n return clone;\n }\n};\nexport default transform;","export { operationUnit } from './operationUnit';\nexport { roundedArrow } from './roundedArrow';\nexport { genPresetColor } from './presetColor';\nexport const textEllipsis = {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n};\nexport const resetComponent = token => ({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n color: token.colorText,\n fontSize: token.fontSize,\n // font-variant: @font-variant-base;\n lineHeight: token.lineHeight,\n listStyle: 'none',\n // font-feature-settings: @font-feature-settings-base;\n fontFamily: token.fontFamily\n});\nexport const resetIcon = () => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n fontStyle: 'normal',\n lineHeight: 0,\n textAlign: 'center',\n textTransform: 'none',\n // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n verticalAlign: '-0.125em',\n textRendering: 'optimizeLegibility',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n '> *': {\n lineHeight: 1\n },\n svg: {\n display: 'inline-block'\n }\n});\nexport const clearFix = () => ({\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n '&::before': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/21864\n display: 'table',\n clear: 'both',\n content: '\"\"'\n }\n});\nexport const genLinkStyle = token => ({\n a: {\n color: token.colorLink,\n textDecoration: token.linkDecoration,\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '-webkit-text-decoration-skip': 'objects',\n '&:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n },\n [`&:active,\n &:hover`]: {\n textDecoration: token.linkHoverDecoration,\n outline: 0\n },\n // https://github.com/ant-design/ant-design/issues/22503\n '&:focus': {\n textDecoration: token.linkFocusDecoration,\n outline: 0\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n});\nexport const genCommonStyle = (token, componentPrefixCls) => {\n const {\n fontFamily,\n fontSize\n } = token;\n const rootPrefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n return {\n [rootPrefixSelector]: {\n fontFamily,\n fontSize,\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n },\n [rootPrefixSelector]: {\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n }\n }\n }\n };\n};\nexport const genFocusOutline = token => ({\n outline: `${token.lineWidthBold}px solid ${token.colorPrimaryBorder}`,\n outlineOffset: 1,\n transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = token => ({\n '&:focus-visible': Object.assign({}, genFocusOutline(token))\n});","/* eslint import/no-unresolved: 0 */\n// @ts-ignore\nimport version from './version';\nexport default version;","export default '5.1.7';","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","export const defaultPresetColors = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false\n});\nexport default seedToken;","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # appened.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # appened.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, _ref) {\n let {\n generateColorPalettes,\n generateNeutralColorPalettes\n } = _ref;\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n return Object.assign(Object.assign({}, neutralColors), {\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6]\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.88),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(2.71828, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => {\n const height = size + 8;\n return {\n size,\n lineHeight: height / size\n };\n });\n}","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\nexport default function derivative(token) {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n sizeXL: sizeUnit * (sizeStep + 4),\n sizeLG: sizeUnit * (sizeStep + 2),\n sizeMD: sizeUnit * (sizeStep + 1),\n sizeMS: sizeUnit * sizeStep,\n size: sizeUnit * sizeStep,\n sizeSM: sizeUnit * (sizeStep - 1),\n sizeXS: sizeUnit * (sizeStep - 2),\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return Object.assign({\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport getAlphaColor from './getAlphaColor';\nimport seedToken from '../themes/seed';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = Object.assign({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n // Generate alias token\n const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n colorLink: mergedToken.colorInfoText,\n colorLinkHover: mergedToken.colorInfoHover,\n colorLinkActive: mergedToken.colorInfoActive,\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n boxShadow: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n boxShadowSecondary: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n // FIXME: component box-shadow, should be removed\n boxShadowPopoverArrow: '3px 3px 7px rgba(0, 0, 0, 0.1)',\n boxShadowCard: `\n 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n `,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerUp: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n }), overrideTokens);\n return aliasToken;\n}","import { createTheme, useCacheToken, useStyleRegister } from '@ant-design/cssinjs';\nimport React from 'react';\nimport version from '../version';\nimport { PresetColors } from './interface';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nimport genComponentStyleHook from './util/genComponentStyleHook';\nimport statisticToken, { merge as mergeToken, statistic } from './util/statistic';\nconst defaultTheme = createTheme(defaultDerivative);\nexport {\n// colors\nPresetColors,\n// Statistic\nstatistic, statisticToken, mergeToken,\n// hooks\nuseStyleRegister, genComponentStyleHook };\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);\n// ================================== Hook ==================================\nexport function useToken() {\n const {\n token: rootDesignToken,\n hashed,\n theme,\n components\n } = React.useContext(DesignTokenContext);\n const salt = `${version}-${hashed || ''}`;\n const mergedTheme = theme || defaultTheme;\n const [token, hashId] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n salt,\n override: Object.assign({\n override: rootDesignToken\n }, components),\n formatToken\n });\n return [mergedTheme, token, hashed ? hashId : ''];\n}","const enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nlet recording = true;\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n /* istanbul ignore next */\n if (!enableStatistic) {\n return Object.assign.apply(Object, [{}].concat(objs));\n }\n recording = false;\n const ret = {};\n objs.forEach(obj => {\n const keys = Object.keys(obj);\n keys.forEach(key => {\n Object.defineProperty(ret, key, {\n configurable: true,\n enumerable: true,\n get: () => obj[key]\n });\n });\n });\n recording = true;\n return ret;\n}\n/** @private Internal Usage. Not use in your production. */\nexport const statistic = {};\n/** @private Internal Usage. Not use in your production. */\n// eslint-disable-next-line camelcase\nexport const _statistic_build_ = {};\n/* istanbul ignore next */\nfunction noop() {}\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nexport default function statisticToken(token) {\n let tokenKeys;\n let proxy = token;\n let flush = noop;\n if (enableStatistic) {\n tokenKeys = new Set();\n proxy = new Proxy(token, {\n get(obj, prop) {\n if (recording) {\n tokenKeys.add(prop);\n }\n return obj[prop];\n }\n });\n flush = (componentName, componentToken) => {\n statistic[componentName] = {\n global: Array.from(tokenKeys),\n component: componentToken\n };\n };\n }\n return {\n token: proxy,\n keys: tokenKeys,\n flush\n };\n}","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { useContext } from 'react';\nimport { genCommonStyle, genLinkStyle } from '../../style';\nimport { ConfigContext } from '../../config-provider/context';\nimport { mergeToken, statisticToken, useToken } from '../internal';\nexport default function genComponentStyleHook(component, styleFn, getDefaultToken) {\n return prefixCls => {\n const [theme, token, hashId] = useToken();\n const {\n getPrefixCls,\n iconPrefixCls\n } = useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n // Generate style for all a tags in antd component.\n useStyleRegister({\n theme,\n token,\n hashId,\n path: ['Shared', rootPrefixCls]\n }, () => [{\n // Link\n '&': genLinkStyle(token)\n }]);\n return [useStyleRegister({\n theme,\n token,\n hashId,\n path: [component, prefixCls, iconPrefixCls]\n }, () => {\n const {\n token: proxyToken,\n flush\n } = statisticToken(token);\n const defaultComponentToken = typeof getDefaultToken === 'function' ? getDefaultToken(proxyToken) : getDefaultToken;\n const mergedComponentToken = Object.assign(Object.assign({}, defaultComponentToken), token[component]);\n const componentCls = `.${prefixCls}`;\n const mergedToken = mergeToken(proxyToken, {\n componentCls,\n prefixCls,\n iconCls: `.${iconPrefixCls}`,\n antCls: `.${rootPrefixCls}`\n }, mergedComponentToken);\n const styleInterpolation = styleFn(mergedToken, {\n hashId,\n prefixCls,\n rootPrefixCls,\n iconPrefixCls,\n overrideComponentToken: token[component]\n });\n flush(component, mergedComponentToken);\n return [genCommonStyle(token, prefixCls), styleInterpolation];\n }), hashId];\n };\n}","const genLayoutLightStyle = token => {\n const {\n componentCls,\n colorBgContainer,\n colorBgBody,\n colorText\n } = token;\n return {\n [`${componentCls}-sider-light`]: {\n background: colorBgContainer,\n [`${componentCls}-sider-trigger`]: {\n color: colorText,\n background: colorBgContainer\n },\n [`${componentCls}-sider-zero-width-trigger`]: {\n color: colorText,\n background: colorBgContainer,\n border: `1px solid ${colorBgBody}`,\n borderInlineStart: 0\n }\n }\n };\n};\nexport default genLayoutLightStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genLayoutLightStyle from './light';\nconst genLayoutStyle = token => {\n const {\n antCls,\n // .ant\n componentCls,\n // .ant-layout\n colorText,\n colorTextLightSolid,\n colorBgHeader,\n colorBgBody,\n colorBgTrigger,\n layoutHeaderHeight,\n layoutHeaderPaddingInline,\n layoutHeaderColor,\n layoutFooterPadding,\n layoutTriggerHeight,\n layoutZeroTriggerSize,\n motionDurationMid,\n motionDurationSlow,\n fontSize,\n borderRadius\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({\n display: 'flex',\n flex: 'auto',\n flexDirection: 'column',\n /* fix firefox can't set height smaller than content on flex item */\n minHeight: 0,\n background: colorBgBody,\n '&, *': {\n boxSizing: 'border-box'\n },\n [`&${componentCls}-has-sider`]: {\n flexDirection: 'row',\n [`> ${componentCls}, > ${componentCls}-content`]: {\n // https://segmentfault.com/a/1190000019498300\n width: 0\n }\n },\n [`${componentCls}-header, &${componentCls}-footer`]: {\n flex: '0 0 auto'\n },\n [`${componentCls}-header`]: {\n height: layoutHeaderHeight,\n paddingInline: layoutHeaderPaddingInline,\n color: layoutHeaderColor,\n lineHeight: `${layoutHeaderHeight}px`,\n background: colorBgHeader,\n // Other components/menu/style/index.less line:686\n // Integration with header element so menu items have the same height\n [`${antCls}-menu`]: {\n lineHeight: 'inherit'\n }\n },\n [`${componentCls}-footer`]: {\n padding: layoutFooterPadding,\n color: colorText,\n fontSize,\n background: colorBgBody\n },\n [`${componentCls}-content`]: {\n flex: 'auto',\n // fix firefox can't set height smaller than content on flex item\n minHeight: 0\n },\n [`${componentCls}-sider`]: {\n position: 'relative',\n // fix firefox can't set width smaller than content on flex item\n minWidth: 0,\n background: colorBgHeader,\n transition: `all ${motionDurationMid}`,\n '&-children': {\n height: '100%',\n // Hack for fixing margin collapse bug\n // https://github.com/ant-design/ant-design/issues/7967\n // solution from https://stackoverflow.com/a/33132624/3040605\n marginTop: -0.1,\n paddingTop: 0.1,\n [`${antCls}-menu${antCls}-menu-inline-collapsed`]: {\n width: 'auto'\n }\n },\n '&-has-trigger': {\n paddingBottom: layoutTriggerHeight\n },\n '&-right': {\n order: 1\n },\n '&-trigger': {\n position: 'fixed',\n bottom: 0,\n zIndex: 1,\n height: layoutTriggerHeight,\n color: colorTextLightSolid,\n lineHeight: `${layoutTriggerHeight}px`,\n textAlign: 'center',\n background: colorBgTrigger,\n cursor: 'pointer',\n transition: `all ${motionDurationMid}`\n },\n '&-zero-width': {\n '> *': {\n overflow: 'hidden'\n },\n '&-trigger': {\n position: 'absolute',\n top: layoutHeaderHeight,\n insetInlineEnd: -layoutZeroTriggerSize,\n zIndex: 1,\n width: layoutZeroTriggerSize,\n height: layoutZeroTriggerSize,\n color: colorTextLightSolid,\n fontSize: token.fontSizeXL,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: colorBgHeader,\n borderStartStartRadius: 0,\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius,\n borderEndStartRadius: 0,\n cursor: 'pointer',\n transition: `background ${motionDurationSlow} ease`,\n '&::after': {\n position: 'absolute',\n inset: 0,\n background: 'transparent',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n },\n '&:hover::after': {\n // FIXME: Hardcode, but seems no need to create a token for this\n background: `rgba(255, 255, 255, 0.2)`\n },\n '&-right': {\n insetInlineStart: -layoutZeroTriggerSize,\n borderStartStartRadius: borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: borderRadius\n }\n }\n }\n }\n }, genLayoutLightStyle(token)), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Layout', token => {\n const {\n colorText,\n controlHeightSM,\n controlHeight,\n controlHeightLG,\n marginXXS\n } = token;\n const layoutHeaderPaddingInline = controlHeightLG * 1.25;\n const layoutToken = mergeToken(token, {\n // Layout\n layoutHeaderHeight: controlHeight * 2,\n layoutHeaderPaddingInline,\n layoutHeaderColor: colorText,\n layoutFooterPadding: `${controlHeightSM}px ${layoutHeaderPaddingInline}px`,\n layoutTriggerHeight: controlHeightLG + marginXXS * 2,\n layoutZeroTriggerSize: controlHeightLG\n });\n return [genLayoutStyle(layoutToken)];\n}, token => {\n const {\n colorBgLayout\n } = token;\n return {\n colorBgHeader: '#001529',\n colorBgBody: colorBgLayout,\n colorBgTrigger: '#002140'\n };\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: () => null,\n removeSider: () => null\n }\n});\nfunction generator(_ref) {\n let {\n suffixCls,\n tagName,\n displayName\n } = _ref;\n return BasicComponent => {\n const Adapter = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls\n } = props;\n const prefixCls = getPrefixCls(suffixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(BasicComponent, Object.assign({\n ref: ref,\n prefixCls: prefixCls,\n tagName: tagName\n }, props));\n });\n if (process.env.NODE_ENV !== 'production') {\n Adapter.displayName = displayName;\n }\n return Adapter;\n };\n}\nconst Basic = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls,\n className,\n children,\n tagName\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"tagName\"]);\n const classString = classNames(prefixCls, className);\n return /*#__PURE__*/React.createElement(tagName, Object.assign(Object.assign({\n className: classString\n }, others), {\n ref\n }), children);\n});\nconst BasicLayout = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n direction\n } = React.useContext(ConfigContext);\n const [siders, setSiders] = React.useState([]);\n const {\n prefixCls,\n className,\n children,\n hasSider,\n tagName: Tag\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"hasSider\", \"tagName\"]);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const classString = classNames(prefixCls, {\n [`${prefixCls}-has-sider`]: typeof hasSider === 'boolean' ? hasSider : siders.length > 0,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n const contextValue = React.useMemo(() => ({\n siderHook: {\n addSider: id => {\n setSiders(prev => [].concat(_toConsumableArray(prev), [id]));\n },\n removeSider: id => {\n setSiders(prev => prev.filter(currentId => currentId !== id));\n }\n }\n }), []);\n return wrapSSR( /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, Object.assign({\n ref: ref,\n className: classString\n }, others), children)));\n});\nconst Layout = generator({\n suffixCls: 'layout',\n tagName: 'section',\n displayName: 'Layout'\n})(BasicLayout);\nconst Header = generator({\n suffixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nconst Footer = generator({\n suffixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nconst Content = generator({\n suffixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Header, Footer, Content };\nexport default Layout;","// This icon file is generated automatically.\nvar BarsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"bars\", \"theme\": \"outlined\" };\nexport default BarsOutlined;\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n acc[key] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls;\n var mergedStyleStr = styleStr;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n useEffect(function () {\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils';\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport BarsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar BarsOutlined = function BarsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: BarsOutlinedSvg\n }));\n};\nBarsOutlined.displayName = 'BarsOutlined';\nexport default /*#__PURE__*/React.forwardRef(BarsOutlined);","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","const isNumeric = value => !isNaN(parseFloat(value)) && isFinite(value);\nexport default isNumeric;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport isNumeric from '../_util/isNumeric';\nimport { LayoutContext } from './layout';\nconst dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport const SiderContext = /*#__PURE__*/React.createContext({});\nconst generateId = (() => {\n let i = 0;\n return function () {\n let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return `${prefix}${i}`;\n };\n})();\nconst Sider = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n className,\n trigger,\n children,\n defaultCollapsed = false,\n theme = 'dark',\n style = {},\n collapsible = false,\n reverseArrow = false,\n width = 200,\n collapsedWidth = 80,\n zeroWidthTriggerStyle,\n breakpoint,\n onCollapse,\n onBreakpoint\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n const {\n siderHook\n } = useContext(LayoutContext);\n const [collapsed, setCollapsed] = useState('collapsed' in props ? props.collapsed : defaultCollapsed);\n const [below, setBelow] = useState(false);\n useEffect(() => {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n const handleSetCollapsed = (value, type) => {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n };\n // ========================= Responsive =========================\n const responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = mql => {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n useEffect(() => {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n let mql;\n if (typeof window !== 'undefined') {\n const {\n matchMedia\n } = window;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(`(max-width: ${dimensionMaxMap[breakpoint]})`);\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return () => {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n useEffect(() => {\n const uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return () => siderHook.removeSider(uniqueId);\n }, []);\n const toggle = () => {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const renderSider = () => {\n const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n const divProps = omit(props, ['collapsed']);\n const rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n const siderWidth = isNumeric(rawWidth) ? `${rawWidth}px` : String(rawWidth);\n // special trigger when collapsedWidth == 0\n const zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(`${prefixCls}-zero-width-trigger`, `${prefixCls}-zero-width-trigger-${reverseArrow ? 'right' : 'left'}`),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null)) : null;\n const iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n const status = collapsed ? 'collapsed' : 'expanded';\n const defaultTrigger = iconObj[status];\n const triggerDom = trigger !== null ? zeroWidthTrigger || /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-trigger`,\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger) : null;\n const divStyle = Object.assign(Object.assign({}, style), {\n flex: `0 0 ${siderWidth}`,\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n const siderCls = classNames(prefixCls, `${prefixCls}-${theme}`, {\n [`${prefixCls}-collapsed`]: !!collapsed,\n [`${prefixCls}-has-trigger`]: collapsible && trigger !== null && !zeroWidthTrigger,\n [`${prefixCls}-below`]: !!below,\n [`${prefixCls}-zero-width`]: parseFloat(siderWidth) === 0\n }, className);\n return /*#__PURE__*/React.createElement(\"aside\", Object.assign({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-children`\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n const contextValue = React.useMemo(() => ({\n siderCollapsed: collapsed\n }), [collapsed]);\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider());\n});\nif (process.env.NODE_ENV !== 'production') {\n Sider.displayName = 'Sider';\n}\nexport default Sider;","import InternalLayout, { Content, Footer, Header } from './layout';\nimport Sider from './Sider';\nconst Layout = InternalLayout;\nLayout.Header = Header;\nLayout.Footer = Footer;\nLayout.Content = Content;\nLayout.Sider = Sider;\nexport default Layout;","// This icon file is generated automatically.\nvar ProfileFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM380 696c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm304 272c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48z\" } }] }, \"name\": \"profile\", \"theme\": \"filled\" };\nexport default ProfileFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ProfileFilledSvg from \"@ant-design/icons-svg/es/asn/ProfileFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar ProfileFilled = function ProfileFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ProfileFilledSvg\n }));\n};\nProfileFilled.displayName = 'ProfileFilled';\nexport default /*#__PURE__*/React.forwardRef(ProfileFilled);","// This icon file is generated automatically.\nvar LoginOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 01520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 01270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 010 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z\" } }] }, \"name\": \"login\", \"theme\": \"outlined\" };\nexport default LoginOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoginOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoginOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LoginOutlined = function LoginOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LoginOutlinedSvg\n }));\n};\nLoginOutlined.displayName = 'LoginOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoginOutlined);","// This icon file is generated automatically.\nvar MenuUnfoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z\" } }] }, \"name\": \"menu-unfold\", \"theme\": \"outlined\" };\nexport default MenuUnfoldOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MenuUnfoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuUnfoldOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar MenuUnfoldOutlined = function MenuUnfoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MenuUnfoldOutlinedSvg\n }));\n};\nMenuUnfoldOutlined.displayName = 'MenuUnfoldOutlined';\nexport default /*#__PURE__*/React.forwardRef(MenuUnfoldOutlined);","// This icon file is generated automatically.\nvar MenuFoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z\" } }] }, \"name\": \"menu-fold\", \"theme\": \"outlined\" };\nexport default MenuFoldOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MenuFoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuFoldOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar MenuFoldOutlined = function MenuFoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MenuFoldOutlinedSvg\n }));\n};\nMenuFoldOutlined.displayName = 'MenuFoldOutlined';\nexport default /*#__PURE__*/React.forwardRef(MenuFoldOutlined);","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\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/**\n * Merge refs into one ref function to support ref passing.\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 var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length === next.length && prev.every(function (ref, i) {\n return ref === next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\n/* eslint-enable */","import React from 'react';\nimport ReactDOM from 'react-dom';\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n if (node instanceof React.Component) {\n return ReactDOM.findDOMNode(node);\n }\n return null;\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} 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}\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 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 ().\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}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\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// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 ? void 0 : onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { observe, unobserve } from '../utils/observerUtil';\nimport DomWrapper from './DomWrapper';\nimport { CollectionContext } from '../Collection';\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = React.useMemo(function () {\n return composeRef(originRef, elementRef);\n }, [originRef, elementRef]);\n var getDom = function getDom() {\n return findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\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 var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from './SingleObserver';\nimport { Collection } from './Collection';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nexport default useLayoutEffect;\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useLayoutEffect(function () {\n if (!firstMountRef.current) {\n return callback();\n }\n }, deps);\n\n // We tell react that first mount has passed\n useLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer'; // Use shared variable to save bundle size\n\nvar UNDEFINED = undefined;\n\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n responsiveDisabled = props.responsiveDisabled,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var mergedHidden = responsive && !display; // ================================ Effect ================================\n\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []); // ================================ Render ================================\n\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n\n var overflowProps = {};\n\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n },\n disabled: responsiveDisabled\n }, itemNode);\n }\n\n return itemNode;\n}\n\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};\nexport default wrapperRaf;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n _excluded2 = [\"className\"],\n _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './Overflow';\n\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext); // Render directly when context not provided\n\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, _excluded);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, _excluded2);\n\n var className = props.className,\n restProps = _objectWithoutProperties(props, _excluded3); // Do not pass context to sub item to avoid multiple measure\n\n\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\n\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport { useBatchFrameState } from './hooks/useBatchFrameState';\nimport RawItem from './RawItem';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\n\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\n\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var createUseState = useBatchFrameState();\n var fullySSR = ssr === 'full';\n\n var _createUseState = createUseState(null),\n _createUseState2 = _slicedToArray(_createUseState, 2),\n containerWidth = _createUseState2[0],\n setContainerWidth = _createUseState2[1];\n\n var mergedContainerWidth = containerWidth || 0;\n\n var _createUseState3 = createUseState(new Map()),\n _createUseState4 = _slicedToArray(_createUseState3, 2),\n itemWidths = _createUseState4[0],\n setItemWidths = _createUseState4[1];\n\n var _createUseState5 = createUseState(0),\n _createUseState6 = _slicedToArray(_createUseState5, 2),\n prevRestWidth = _createUseState6[0],\n setPrevRestWidth = _createUseState6[1];\n\n var _createUseState7 = createUseState(0),\n _createUseState8 = _slicedToArray(_createUseState7, 2),\n restWidth = _createUseState8[0],\n setRestWidth = _createUseState8[1];\n\n var _createUseState9 = createUseState(0),\n _createUseState10 = _slicedToArray(_createUseState9, 2),\n suffixWidth = _createUseState10[0],\n setSuffixWidth = _createUseState10[1];\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\"); // Always use the max width to avoid blink\n\n var mergedRestWidth = Math.max(prevRestWidth, restWidth); // ================================= Data =================================\n\n var isResponsive = maxCount === RESPONSIVE;\n var shouldResponsive = data.length && isResponsive;\n var invalidate = maxCount === INVALIDATE;\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 = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n\n if (shouldResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n\n return items;\n }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n var omittedItems = useMemo(function () {\n if (shouldResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n\n return data.slice(mergedData.length);\n }, [data, mergedData, shouldResponsive, mergedDisplayCount]); // ================================= Item =================================\n\n var getKey = useCallback(function (item, index) {\n var _ref;\n\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n\n function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n // React 18 will sync render even when the value is same in some case.\n // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n // ref: https://github.com/ant-design/ant-design/issues/36559\n if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n return;\n }\n\n setDisplayCount(count);\n\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n\n if (suffixFixedStartVal !== undefined) {\n setSuffixFixedStart(suffixFixedStartVal);\n }\n } // ================================= Size =================================\n\n\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n\n return clone;\n });\n }\n\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n } // ================================ Effect ================================\n\n\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n\n useLayoutEffect(function () {\n if (mergedContainerWidth && mergedRestWidth && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.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, null);\n return;\n }\n\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i); // Fully will always render\n\n if (fullySSR) {\n currentItemWidth = currentItemWidth || 0;\n } // Break since data not ready\n\n\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, undefined, 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 || // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex, null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]); // ================================ Render ================================\n\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n\n if (suffixFixedStart !== null && shouldResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: shouldResponsive,\n component: itemComponent,\n invalidate: invalidate\n }; // >>>>> Choice render fun by `renderRawItem`\n\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n }; // >>>>> Rest node\n\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n responsive: isResponsive,\n responsiveDisabled: !shouldResponsive,\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize,\n disabled: !shouldResponsive\n }, overflowNode);\n }\n\n return overflowNode;\n}\n\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE; // Convert to generic type\n\nexport default ForwardOverflow;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * State generate. Return a `setState` but it will flush all state with one render to save perf.\n * This is not a realization of `unstable_batchedUpdates`.\n */\n\nexport function useBatchFrameState() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var statesRef = useRef([]);\n var walkingIndex = 0;\n var beforeFrameId = 0;\n\n function createState(defaultValue) {\n var myIndex = walkingIndex;\n walkingIndex += 1; // Fill value if not exist yet\n\n if (statesRef.current.length < myIndex + 1) {\n statesRef.current[myIndex] = defaultValue;\n } // Return filled as `setState`\n\n\n var value = statesRef.current[myIndex];\n\n function setValue(val) {\n statesRef.current[myIndex] = typeof val === 'function' ? val(statesRef.current[myIndex]) : val;\n raf.cancel(beforeFrameId); // Flush with batch\n\n beforeFrameId = raf(function () {\n forceUpdate({}, true);\n });\n }\n\n return [value, setValue];\n }\n\n return createState;\n}","import Overflow from './Overflow';\nexport default Overflow;","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar 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,\n // 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,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // 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,\n // 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,\n // 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,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\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 if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\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 * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\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 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};\nexport default KeyCode;","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof HTMLElement && element.offsetParent) {\n return true;\n }\n if (element instanceof SVGGraphicsElement && element.getBBox) {\n var _element$getBBox = element.getBBox(),\n width = _element$getBBox.width,\n height = _element$getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element instanceof HTMLElement && element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n return false;\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\n\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from \"../context/IdContext\";\n\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key;\n\n // >>> Wrap as function since we use raf for some case\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n refreshElements();\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport useActive from \"./hooks/useActive\";\nimport { warnItemProp } from \"./utils/warnUtil\";\nimport Icon from \"./Icon\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { useMenuId } from \"./context/IdContext\";\nimport PrivateContext from \"./context/PrivateContext\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var passedProps = omit(restProps, ['eventKey']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = function InternalMenuItem(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: elementRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n};\nfunction MenuItem(props) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, props);\n}\nexport default MenuItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { Divider, MenuItem, MenuItemGroup, SubMenu } from '..';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n return parseChildren(childNodes, keyPath);\n}","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from \"./Dom/canUseDom\";\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var parentRef = useRef();\n var containerRef = useRef();\n\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, function () {\n return {};\n });\n\n // Create container in client side with sync to avoid useEffect not get ref\n var initRef = useRef(false);\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n parentRef.current = containerRef.current.parentNode;\n initRef.current = true;\n }\n\n // [Legacy] Used by `rc-trigger`\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n // Restore container to original place\n // React 18 StrictMode will unmount first and mount back for effect test:\n // https://reactjs.org/blog/2022/03/29/react-v18.html#new-strict-mode-behaviors\n if (containerRef.current.parentNode === null && parentRef.current !== null) {\n parentRef.current.appendChild(containerRef.current);\n }\n return function () {\n var _containerRef$current, _containerRef$current2;\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\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 _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(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});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from \"../interface\";\nimport useNextFrame from \"./useNextFrame\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from \"./util/motion\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport useStatus from \"./hooks/useStatus\";\nimport DomWrapper from \"./DomWrapper\";\nimport { isActive } from \"./hooks/useStepQueue\";\n\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n } // Auto inject ref if child node not have `ref` props\n\n\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from \"../interface\";\nimport useStepQueue, { DoStep, SkipStep, isActive } from \"./useStepQueue\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n function getDomElement() {\n return getElement();\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var currentActive = activeRef.current;\n var canEnd;\n\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []); // Trigger `onVisibleChanged`\n\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { supportTransition } from \"./util/motion\";\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from \"./util/diff\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n\n _this.setState({\n keyEntities: nextKeyEntities\n });\n\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n });\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n } // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const 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}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { CSSMotionList };\nexport default CSSMotion;","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/legacyUtil\";\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const 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 = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const 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\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const 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}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const 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}\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}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const 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\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let 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 const style = elem.style;\n const left = style[LEFT];\n const 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\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\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 let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const 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] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const 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 const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const 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}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\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}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let 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\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let 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\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}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let 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 let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${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}\n\nconst domUtils = {\n getParent(element) {\n let 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};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const 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${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\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 let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? Math.floor(elem.getBoundingClientRect().width)\n : Math.floor(elem.getBoundingClientRect().height);\n const isBorderBox = isBorderBoxFn(elem);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\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 const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const 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 (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which)\n : getPBMWidth(elem, ['margin'], which))\n );\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const 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, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const 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});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const 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,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\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 const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const 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 (\n (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 &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const 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(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\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 let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let 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 const 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\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 const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let 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 const 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\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\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\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let 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}\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 let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\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(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\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(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\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(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\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 (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\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 (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\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\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\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}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport { alignElement, alignPoint } from 'dom-align';\nimport isEqual from \"rc-util/es/isEqual\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useBuffer from \"./hooks/useBuffer\";\nimport { isSamePoint, monitorResize, restoreFocus } from \"./util\";\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\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n /** Popup node ref */\n\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n var source = nodeRef.current;\n\n if (!latestDisabled && latestTarget && source) {\n var _result;\n\n var _element = getElement(latestTarget);\n\n var _point = getPoint(latestTarget);\n\n cacheRef.current.element = _element;\n cacheRef.current.point = _point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (_element && isVisible(_element)) {\n _result = alignElement(source, _element, latestAlign);\n } else if (_point) {\n _result = alignPoint(source, _point, latestAlign);\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 }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Handle props change\n\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n point = _React$useState4[0],\n setPoint = _React$useState4[1];\n\n useLayoutEffect(function () {\n setElement(getElement(target));\n setPoint(getPoint(target));\n });\n React.useEffect(function () {\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign();\n }\n }); // Watch popup element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(nodeRef.current, _forceAlign);\n return cancelFn;\n }, [nodeRef.current]); // Watch target element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(element, _forceAlign);\n return cancelFn;\n }, [element]); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n React.useEffect(function () {\n if (monitorWindowResize) {\n var cancelFn = addEventListener(window, 'resize', _forceAlign);\n return cancelFn.remove;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n cancelTrigger();\n\n if (!calledRef.current || force === true) {\n if (callback(force) === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import utils from '../utils';\nimport doAlign from './align';\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 let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","// export this package's api\nimport Align from \"./Align\";\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * Popup should follow the steps for each component work correctly:\n * measure - check for the current 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 */\n\nvar StatusQueue = ['measure', 'alignPre', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function setStatus(nextStatus) {\n setInternalStatus(nextStatus, true);\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from \"./useVisibleStatus\";\nimport { getMotion } from \"../utils/legacyUtil\";\nimport useStretchStyle from \"./useStretchStyle\";\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart,\n onClick = props.onClick;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n /**\n * `alignedClassName` may modify `source` size,\n * which means one time align may not move to the correct position at once.\n *\n * We will reset `alignTimes` for each status switch to `alignPre`\n * and let `rc-align` to align for multiple times to ensure get final stable place.\n * Currently we mark `alignTimes < 2` repeat align, it will increase if user report for align issue.\n * \n * Update:\n * In React 18. `rc-align` effect of align may faster than ref called trigger `forceAlign`.\n * We adjust this to `alignTimes < 2`.\n * We need refactor `rc-align` to support mark of `forceAlign` call if this still happen.\n */\n\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n alignTimes = _useState4[0],\n setAlignTimes = _useState4[1];\n\n var prepareResolveRef = useRef();\n useLayoutEffect(function () {\n if (status === 'alignPre') {\n setAlignTimes(0);\n }\n }, [status]); // `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\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n } // We will retry multi times to make sure that the element has been align in the right position.\n\n\n setAlignTimes(function (val) {\n return val + 1;\n });\n\n if (status === 'align') {\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // Delay to go to next status\n\n\n useLayoutEffect(function () {\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignTimes < 3) {\n forceAlign();\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n }\n }, [alignTimes]); // ======================== Motion ========================\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n // Cannot interact with disappearing elements\n // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714\n pointerEvents: !visible && status !== 'stable' ? 'none' : undefined\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if (align !== null && align !== void 0 && align.points && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n var tgtWidth = element.offsetWidth,\n tgtHeight = element.offsetHeight;\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n width = _element$getBoundingC.width,\n height = _element$getBoundingC.height; // Rect is more accurate than offset, use if near\n\n\n if (Math.abs(tgtWidth - width) < 1 && Math.abs(tgtHeight - height) < 1) {\n tgtWidth = width;\n tgtHeight = height;\n }\n\n setTargetSize({\n width: tgtWidth,\n height: tgtHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender,\n onClick = props.onClick;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from \"./Mask\";\nimport PopupInner from \"./PopupInner\";\nimport MobilePopupInner from \"./MobilePopupInner\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from \"./utils/alignUtil\";\nimport Popup from \"./Popup\";\nimport TriggerContext from \"./context\";\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n // ensure `getContainer` will be called only once\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"popupRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"triggerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"portalContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"attachId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"clickOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"touchOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler1\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler2\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mouseDownTimeout\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focusTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preClickTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preTouchTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"delayTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasPopupMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseMove\", function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseEnter\", function () {\n _this.clearDelayTimer();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseLeave\", function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenuClose\", function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\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 var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseDown\", function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // 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()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootDomNode\", function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopupClassNameFromAlign\", function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$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\n _defineProperty(_assertThisInitialized(_this), \"getComponent\", function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender,\n onPopupClick = _this$props2.onPopupClick;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender,\n onClick: onPopupClick\n }), typeof popup === 'function' ? popup() : popup);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"attachParent\", function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\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(function () {\n _this.attachParent(popupContainer);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getContainer\", function () {\n if (!_this.portalContainer) {\n // In React.StrictMode component will call render multiple time in first mount.\n // When you want to refactor with FC, useRef will also init multiple time and\n // point to different useRef instance which will create multiple element\n // (This multiple render will not trigger effect so you can not clean up this\n // in effect). But this is safe with class component since it always point to same class instance.\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).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 _this.portalContainer = popupContainer;\n }\n\n _this.attachParent(_this.portalContainer);\n\n return _this.portalContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPoint\", function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePortalUpdate\", function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerContextValue\", {\n onPopupMouseDown: _this.onPopupMouseDown\n });\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // 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.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\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(this.getRootDomNode());\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\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: 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 }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = 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 = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: 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 }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\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 = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n _defineProperty(Trigger, \"contextType\", TriggerContext);\n\n _defineProperty(Trigger, \"defaultProps\", {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n });\n\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/nodeUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getMenuId, IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer);\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/nodeUtil\";\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\nEllipsisOutlined.displayName = 'EllipsisOutlined';\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n height: 0,\n opacity: 0\n});\nconst getRealHeight = node => {\n const {\n scrollHeight\n } = node;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nconst getCurrentHeight = node => ({\n height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ant';\n return {\n motionName: `${rootCls}-motion-collapse`,\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n };\n};\nconst SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionDirection = placement => {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return `slide-down`;\n }\n return `slide-up`;\n};\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName, getTransitionDirection };\nexport default initCollapseMotion;","import * as React from 'react';\nexport const {\n isValidElement\n} = React;\nexport function isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","const genCollapseMotion = token => ({\n [token.componentCls]: {\n // For common/openAnimation\n [`${token.antCls}-motion-collapse-legacy`]: {\n overflow: 'hidden',\n '&-active': {\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n },\n [`${token.antCls}-motion-collapse`]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n }\n});\nexport default genCollapseMotion;","const initMotionCommon = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n animationPlayState: 'paused'\n }),\n [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n animationPlayState: 'paused'\n }),\n [`\n ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n `]: {\n animationName: inKeyframes,\n animationPlayState: 'running'\n },\n [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n animationName: outKeyframes,\n animationPlayState: 'running',\n pointerEvents: 'none'\n }\n };\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const slideUpIn = new Keyframes('antSlideUpIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideUpOut = new Keyframes('antSlideUpOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideDownIn = new Keyframes('antSlideDownIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n }\n});\nexport const slideDownOut = new Keyframes('antSlideDownOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n }\n});\nexport const slideLeftIn = new Keyframes('antSlideLeftIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideLeftOut = new Keyframes('antSlideLeftOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideRightIn = new Keyframes('antSlideRightIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n }\n});\nexport const slideRightOut = new Keyframes('antSlideRightOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n }\n});\nconst slideMotion = {\n 'slide-up': {\n inKeyframes: slideUpIn,\n outKeyframes: slideUpOut\n },\n 'slide-down': {\n inKeyframes: slideDownIn,\n outKeyframes: slideDownOut\n },\n 'slide-left': {\n inKeyframes: slideLeftIn,\n outKeyframes: slideLeftOut\n },\n 'slide-right': {\n inKeyframes: slideRightIn,\n outKeyframes: slideRightOut\n }\n};\nexport const initSlideMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = slideMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n transformOrigin: '0% 0%',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutQuint\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInQuint\n }\n }];\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n '0%': {\n transform: 'scale(0.2)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.2)',\n opacity: 0\n }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.8)',\n opacity: 0\n }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n }\n});\nconst zoomMotion = {\n zoom: {\n inKeyframes: zoomIn,\n outKeyframes: zoomOut\n },\n 'zoom-big': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-big-fast': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-left': {\n inKeyframes: zoomLeftIn,\n outKeyframes: zoomLeftOut\n },\n 'zoom-right': {\n inKeyframes: zoomRightIn,\n outKeyframes: zoomRightOut\n },\n 'zoom-up': {\n inKeyframes: zoomUpIn,\n outKeyframes: zoomUpOut\n },\n 'zoom-down': {\n inKeyframes: zoomDownIn,\n outKeyframes: zoomDownOut\n }\n};\nexport const initZoomMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = zoomMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc,\n '&-prepare': {\n transform: 'none'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","const getHorizontalStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n menuHorizontalHeight,\n colorSplit,\n lineWidth,\n lineType,\n menuItemPaddingInline\n } = token;\n return {\n [`${componentCls}-horizontal`]: {\n lineHeight: `${menuHorizontalHeight}px`,\n border: 0,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n boxShadow: 'none',\n '&::after': {\n display: 'block',\n clear: 'both',\n height: 0,\n content: '\"\\\\20\"'\n },\n // ======================= Item =======================\n [`${componentCls}-item, ${componentCls}-submenu`]: {\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'bottom',\n paddingInline: menuItemPaddingInline\n },\n [`> ${componentCls}-item:hover,\n > ${componentCls}-item-active,\n > ${componentCls}-submenu ${componentCls}-submenu-title:hover`]: {\n backgroundColor: 'transparent'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`].join(',')\n },\n // ===================== Sub Menu =====================\n [`${componentCls}-submenu-arrow`]: {\n display: 'none'\n }\n }\n };\n};\nexport default getHorizontalStyle;","const getRTLStyle = _ref => {\n let {\n componentCls,\n menuArrowOffset\n } = _ref;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-submenu-rtl`]: {\n transformOrigin: '100% 0'\n },\n // Vertical Arrow\n [`${componentCls}-rtl${componentCls}-vertical,\n ${componentCls}-submenu-rtl ${componentCls}-vertical`]: {\n [`${componentCls}-submenu-arrow`]: {\n '&::before': {\n transform: `rotate(-45deg) translateY(-${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(45deg) translateY(${menuArrowOffset})`\n }\n }\n }\n };\n};\nexport default getRTLStyle;","import { genFocusOutline } from '../../style';\nconst accessibilityFocus = token => Object.assign({}, genFocusOutline(token));\nconst getThemeStyle = (token, themeSuffix) => {\n const {\n componentCls,\n colorItemText,\n colorItemTextSelected,\n colorGroupTitle,\n colorItemBg,\n colorSubItemBg,\n colorItemBgSelected,\n colorActiveBarHeight,\n colorActiveBarWidth,\n colorActiveBarBorderSize,\n motionDurationSlow,\n motionEaseInOut,\n motionEaseOut,\n menuItemPaddingInline,\n motionDurationMid,\n colorItemTextHover,\n lineType,\n colorSplit,\n // Disabled\n colorItemTextDisabled,\n // Danger\n colorDangerItemText,\n colorDangerItemTextHover,\n colorDangerItemTextSelected,\n colorDangerItemBgActive,\n colorDangerItemBgSelected,\n colorItemBgHover,\n menuSubMenuBg,\n // Horizontal\n colorItemTextSelectedHorizontal,\n colorItemBgSelectedHorizontal\n } = token;\n return {\n [`${componentCls}-${themeSuffix}`]: {\n color: colorItemText,\n background: colorItemBg,\n [`&${componentCls}-root:focus-visible`]: Object.assign({}, accessibilityFocus(token)),\n // ======================== Item ========================\n [`${componentCls}-item-group-title`]: {\n color: colorGroupTitle\n },\n [`${componentCls}-submenu-selected`]: {\n [`> ${componentCls}-submenu-title`]: {\n color: colorItemTextSelected\n }\n },\n // Disabled\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n color: `${colorItemTextDisabled} !important`\n },\n // Hover\n [`${componentCls}-item:hover, ${componentCls}-submenu-title:hover`]: {\n [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n color: colorItemTextHover\n }\n },\n [`&:not(${componentCls}-horizontal)`]: {\n [`${componentCls}-item:not(${componentCls}-item-selected)`]: {\n '&:hover': {\n backgroundColor: colorItemBgHover\n },\n '&:active': {\n backgroundColor: colorItemBgSelected\n }\n },\n [`${componentCls}-submenu-title`]: {\n '&:hover': {\n backgroundColor: colorItemBgHover\n },\n '&:active': {\n backgroundColor: colorItemBgSelected\n }\n }\n },\n // Danger - only Item has\n [`${componentCls}-item-danger`]: {\n color: colorDangerItemText,\n [`&${componentCls}-item:hover`]: {\n [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n color: colorDangerItemTextHover\n }\n },\n [`&${componentCls}-item:active`]: {\n background: colorDangerItemBgActive\n }\n },\n [`${componentCls}-item a`]: {\n '&, &:hover': {\n color: 'inherit'\n }\n },\n [`${componentCls}-item-selected`]: {\n color: colorItemTextSelected,\n // Danger\n [`&${componentCls}-item-danger`]: {\n color: colorDangerItemTextSelected\n },\n [`a, a:hover`]: {\n color: 'inherit'\n }\n },\n [`& ${componentCls}-item-selected`]: {\n backgroundColor: colorItemBgSelected,\n // Danger\n [`&${componentCls}-item-danger`]: {\n backgroundColor: colorDangerItemBgSelected\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n [`&:not(${componentCls}-item-disabled):focus-visible`]: Object.assign({}, accessibilityFocus(token))\n },\n [`&${componentCls}-submenu > ${componentCls}`]: {\n backgroundColor: menuSubMenuBg\n },\n [`&${componentCls}-popup > ${componentCls}`]: {\n backgroundColor: colorItemBg\n },\n // ====================== Horizontal ======================\n [`&${componentCls}-horizontal`]: Object.assign(Object.assign({}, themeSuffix === 'dark' ? {\n borderBottom: 0\n } : {}), {\n [`> ${componentCls}-item, > ${componentCls}-submenu`]: {\n top: colorActiveBarBorderSize,\n marginTop: -colorActiveBarBorderSize,\n marginBottom: 0,\n borderRadius: 0,\n '&::after': {\n position: 'absolute',\n insetInline: menuItemPaddingInline,\n bottom: 0,\n borderBottom: `${colorActiveBarHeight}px solid transparent`,\n transition: `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n content: '\"\"'\n },\n [`&:hover, &-active, &-open`]: {\n '&::after': {\n borderBottomWidth: colorActiveBarHeight,\n borderBottomColor: colorItemTextSelectedHorizontal\n }\n },\n [`&-selected`]: {\n color: colorItemTextSelectedHorizontal,\n backgroundColor: colorItemBgSelectedHorizontal,\n '&::after': {\n borderBottomWidth: colorActiveBarHeight,\n borderBottomColor: colorItemTextSelectedHorizontal\n }\n }\n }\n }),\n // ================== Inline & Vertical ===================\n //\n [`&${componentCls}-root`]: {\n [`&${componentCls}-inline, &${componentCls}-vertical`]: {\n borderInlineEnd: `${colorActiveBarBorderSize}px ${lineType} ${colorSplit}`\n }\n },\n // ======================== Inline ========================\n [`&${componentCls}-inline`]: {\n // Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n background: colorSubItemBg\n },\n // Item\n [`${componentCls}-item, ${componentCls}-submenu-title`]: colorActiveBarBorderSize && colorActiveBarWidth ? {\n width: `calc(100% + ${colorActiveBarBorderSize}px)`\n } : {},\n [`${componentCls}-item`]: {\n position: 'relative',\n '&::after': {\n position: 'absolute',\n insetBlock: 0,\n insetInlineEnd: 0,\n borderInlineEnd: `${colorActiveBarWidth}px solid ${colorItemTextSelected}`,\n transform: 'scaleY(0.0001)',\n opacity: 0,\n transition: [`transform ${motionDurationMid} ${motionEaseOut}`, `opacity ${motionDurationMid} ${motionEaseOut}`].join(','),\n content: '\"\"'\n },\n // Danger\n [`&${componentCls}-item-danger`]: {\n '&::after': {\n borderInlineEndColor: colorDangerItemTextSelected\n }\n }\n },\n [`${componentCls}-selected, ${componentCls}-item-selected`]: {\n '&::after': {\n transform: 'scaleY(1)',\n opacity: 1,\n transition: [`transform ${motionDurationMid} ${motionEaseInOut}`, `opacity ${motionDurationMid} ${motionEaseInOut}`].join(',')\n }\n }\n }\n }\n };\n};\nexport default getThemeStyle;","import { textEllipsis } from '../../style';\nconst getVerticalInlineStyle = token => {\n const {\n componentCls,\n menuItemHeight,\n itemMarginInline,\n padding,\n menuArrowSize,\n marginXS,\n marginXXS\n } = token;\n const paddingWithArrow = padding + menuArrowSize + marginXS;\n return {\n [`${componentCls}-item`]: {\n position: 'relative'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n height: menuItemHeight,\n lineHeight: `${menuItemHeight}px`,\n paddingInline: padding,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginInline: itemMarginInline,\n marginBlock: marginXXS,\n width: `calc(100% - ${itemMarginInline * 2}px)`\n },\n // disable margin collapsed\n [`${componentCls}-submenu`]: {\n paddingBottom: 0.02\n },\n [`> ${componentCls}-item,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n height: menuItemHeight,\n lineHeight: `${menuItemHeight}px`\n },\n [`${componentCls}-item-group-list ${componentCls}-submenu-title,\n ${componentCls}-submenu-title`]: {\n paddingInlineEnd: paddingWithArrow\n }\n };\n};\nconst getVerticalStyle = token => {\n const {\n componentCls,\n iconCls,\n menuItemHeight,\n colorTextLightSolid,\n dropdownWidth,\n controlHeightLG,\n motionDurationMid,\n motionEaseOut,\n paddingXL,\n fontSizeSM,\n fontSizeLG,\n motionDurationSlow,\n paddingXS,\n boxShadowSecondary\n } = token;\n const inlineItemStyle = {\n height: menuItemHeight,\n lineHeight: `${menuItemHeight}px`,\n listStylePosition: 'inside',\n listStyleType: 'disc'\n };\n return [{\n [componentCls]: {\n [`&-inline, &-vertical`]: Object.assign({\n [`&${componentCls}-root`]: {\n boxShadow: 'none'\n }\n }, getVerticalInlineStyle(token))\n },\n [`${componentCls}-submenu-popup`]: {\n [`${componentCls}-vertical`]: Object.assign(Object.assign({}, getVerticalInlineStyle(token)), {\n boxShadow: boxShadowSecondary\n })\n }\n },\n // Vertical only\n {\n [`${componentCls}-submenu-popup ${componentCls}-vertical${componentCls}-sub`]: {\n minWidth: dropdownWidth,\n maxHeight: `calc(100vh - ${controlHeightLG * 2.5}px)`,\n padding: '0',\n overflow: 'hidden',\n borderInlineEnd: 0,\n // https://github.com/ant-design/ant-design/issues/22244\n // https://github.com/ant-design/ant-design/issues/26812\n \"&:not([class*='-active'])\": {\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n },\n // Inline Only\n {\n [`${componentCls}-inline`]: {\n width: '100%',\n // Motion enhance for first level\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n display: 'flex',\n alignItems: 'center',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationMid} ${motionEaseOut}`].join(','),\n [`> ${componentCls}-title-content`]: {\n flex: 'auto',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n '> *': {\n flex: 'none'\n }\n }\n },\n // >>>>> Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n padding: 0,\n border: 0,\n borderRadius: 0,\n boxShadow: 'none',\n [`& > ${componentCls}-submenu > ${componentCls}-submenu-title`]: inlineItemStyle,\n [`& ${componentCls}-item-group-title`]: {\n paddingInlineStart: paddingXL\n }\n },\n // >>>>> Item\n [`${componentCls}-item`]: inlineItemStyle\n }\n },\n // Inline Collapse Only\n {\n [`${componentCls}-inline-collapsed`]: {\n width: menuItemHeight * 2,\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu ${componentCls}-submenu-title`]: {\n [`> ${componentCls}-inline-collapsed-noicon`]: {\n fontSize: fontSizeLG,\n textAlign: 'center'\n }\n }\n },\n [`> ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-submenu > ${componentCls}-submenu-title,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n insetInlineStart: 0,\n paddingInline: `calc(50% - ${fontSizeSM}px)`,\n textOverflow: 'clip',\n [`\n ${componentCls}-submenu-arrow,\n ${componentCls}-submenu-expand-icon\n `]: {\n opacity: 0\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n margin: 0,\n fontSize: fontSizeLG,\n lineHeight: `${menuItemHeight}px`,\n '+ span': {\n display: 'inline-block',\n opacity: 0\n }\n }\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'inline-block'\n },\n '&-tooltip': {\n pointerEvents: 'none',\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'none'\n },\n 'a, a:hover': {\n color: colorTextLightSolid\n }\n },\n [`${componentCls}-item-group-title`]: Object.assign(Object.assign({}, textEllipsis), {\n paddingInline: paddingXS\n })\n }\n }];\n};\nexport default getVerticalStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genCollapseMotion, initSlideMotion, initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport getHorizontalStyle from './horizontal';\nimport getRTLStyle from './rtl';\nimport getThemeStyle from './theme';\nimport getVerticalStyle from './vertical';\nimport { clearFix, resetComponent, resetIcon } from '../../style';\nconst genMenuItemStyle = token => {\n const {\n componentCls,\n fontSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n motionEaseOut,\n iconCls,\n controlHeightSM\n } = token;\n return {\n // >>>>> Item\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n position: 'relative',\n display: 'block',\n margin: 0,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n [`${componentCls}-item-icon, ${iconCls}`]: {\n minWidth: fontSize,\n fontSize,\n transition: [`font-size ${motionDurationMid} ${motionEaseOut}`, `margin ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow}`].join(','),\n '+ span': {\n marginInlineStart: controlHeightSM - fontSize,\n opacity: 1,\n transition: [`opacity ${motionDurationSlow} ${motionEaseInOut}`, `margin ${motionDurationSlow}`, `color ${motionDurationSlow}`].join(',')\n }\n },\n [`${componentCls}-item-icon`]: Object.assign({}, resetIcon()),\n [`&${componentCls}-item-only-child`]: {\n [`> ${iconCls}, > ${componentCls}-item-icon`]: {\n marginInlineEnd: 0\n }\n }\n },\n // Disabled state sets text to gray and nukes hover/tab effects\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n background: 'none !important',\n cursor: 'not-allowed',\n '&::after': {\n borderColor: 'transparent !important'\n },\n a: {\n color: 'inherit !important'\n },\n [`> ${componentCls}-submenu-title`]: {\n color: 'inherit !important',\n cursor: 'not-allowed'\n }\n }\n };\n};\nconst genSubMenuArrowStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n motionEaseInOut,\n borderRadius,\n menuArrowSize,\n menuArrowOffset\n } = token;\n return {\n [`${componentCls}-submenu`]: {\n [`&-expand-icon, &-arrow`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: token.margin,\n width: menuArrowSize,\n color: 'currentcolor',\n transform: 'translateY(-50%)',\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}, opacity ${motionDurationSlow}`\n },\n '&-arrow': {\n // →\n '&::before, &::after': {\n position: 'absolute',\n width: menuArrowSize * 0.6,\n height: menuArrowSize * 0.15,\n backgroundColor: 'currentcolor',\n borderRadius,\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `transform ${motionDurationSlow} ${motionEaseInOut}`, `top ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n content: '\"\"'\n },\n '&::before': {\n transform: `rotate(45deg) translateY(-${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(-45deg) translateY(${menuArrowOffset})`\n }\n }\n }\n };\n};\n// =============================== Base ===============================\nconst getBaseStyle = token => {\n const {\n antCls,\n componentCls,\n fontSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n lineHeight,\n paddingXS,\n padding,\n colorSplit,\n lineWidth,\n zIndexPopup,\n borderRadiusLG,\n radiusSubMenuItem,\n menuArrowSize,\n menuArrowOffset,\n lineType,\n menuPanelMaskInset\n } = token;\n return [\n // Misc\n {\n '': {\n [`${componentCls}`]: Object.assign(Object.assign({}, clearFix()), {\n // Hidden\n [`&-hidden`]: {\n display: 'none'\n }\n })\n },\n [`${componentCls}-submenu-hidden`]: {\n display: 'none'\n }\n }, {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), clearFix()), {\n marginBottom: 0,\n paddingInlineStart: 0,\n // Override default ul/ol\n fontSize,\n lineHeight: 0,\n listStyle: 'none',\n outline: 'none',\n transition: [`background ${motionDurationSlow}`,\n // Magic cubic here but smooth transition\n `width ${motionDurationSlow} cubic-bezier(0.2, 0, 0, 1) 0s`].join(','),\n [`ul, ol`]: {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n // Overflow ellipsis\n [`&-overflow`]: {\n display: 'flex',\n [`${componentCls}-item`]: {\n flex: 'none'\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu, ${componentCls}-submenu-title`]: {\n borderRadius: token.radiusItem\n },\n [`${componentCls}-item-group-title`]: {\n padding: `${paddingXS}px ${padding}px`,\n fontSize,\n lineHeight,\n transition: `all ${motionDurationSlow}`\n },\n [`&-horizontal ${componentCls}-submenu`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu, ${componentCls}-submenu-inline`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationMid} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu ${componentCls}-sub`]: {\n cursor: 'initial',\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-title-content`]: {\n transition: `color ${motionDurationSlow}`\n },\n [`${componentCls}-item a`]: {\n '&::before': {\n position: 'absolute',\n inset: 0,\n backgroundColor: 'transparent',\n content: '\"\"'\n }\n },\n // Removed a Badge related style seems it's safe\n // https://github.com/ant-design/ant-design/issues/19809\n // >>>>> Divider\n [`${componentCls}-item-divider`]: {\n overflow: 'hidden',\n lineHeight: 0,\n borderColor: colorSplit,\n borderStyle: lineType,\n borderWidth: 0,\n borderTopWidth: lineWidth,\n marginBlock: lineWidth,\n padding: 0,\n '&-dashed': {\n borderStyle: 'dashed'\n }\n }\n }), genMenuItemStyle(token)), {\n [`${componentCls}-item-group`]: {\n [`${componentCls}-item-group-list`]: {\n margin: 0,\n padding: 0,\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n paddingInline: `${fontSize * 2}px ${padding}px`\n }\n }\n },\n // ======================= Sub Menu =======================\n '&-submenu': {\n '&-popup': {\n position: 'absolute',\n zIndex: zIndexPopup,\n background: 'transparent',\n borderRadius: borderRadiusLG,\n boxShadow: 'none',\n transformOrigin: '0 0',\n // https://github.com/ant-design/ant-design/issues/13955\n '&::before': {\n position: 'absolute',\n inset: `${menuPanelMaskInset}px 0 0`,\n zIndex: -1,\n width: '100%',\n height: '100%',\n opacity: 0,\n content: '\"\"'\n }\n },\n // https://github.com/ant-design/ant-design/issues/13955\n '&-placement-rightTop::before': {\n top: 0,\n insetInlineStart: menuPanelMaskInset\n },\n [`> ${componentCls}`]: Object.assign(Object.assign(Object.assign({\n borderRadius: borderRadiusLG\n }, genMenuItemStyle(token)), genSubMenuArrowStyle(token)), {\n [`${componentCls}-item, ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n borderRadius: radiusSubMenuItem\n },\n [`${componentCls}-submenu-title::after`]: {\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}`\n }\n })\n }\n }), genSubMenuArrowStyle(token)), {\n [`&-inline-collapsed ${componentCls}-submenu-arrow,\n &-inline ${componentCls}-submenu-arrow`]: {\n // ↓\n '&::before': {\n transform: `rotate(-45deg) translateX(${menuArrowOffset})`\n },\n '&::after': {\n transform: `rotate(45deg) translateX(-${menuArrowOffset})`\n }\n },\n [`${componentCls}-submenu-open${componentCls}-submenu-inline > ${componentCls}-submenu-title > ${componentCls}-submenu-arrow`]: {\n // ↑\n transform: `translateY(-${menuArrowSize * 0.2}px)`,\n '&::after': {\n transform: `rotate(-45deg) translateX(-${menuArrowOffset})`\n },\n '&::before': {\n transform: `rotate(45deg) translateX(${menuArrowOffset})`\n }\n }\n })\n },\n // Integration with header element so menu items have the same height\n {\n [`${antCls}-layout-header`]: {\n [componentCls]: {\n lineHeight: 'inherit'\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Menu', (token, _ref) => {\n let {\n overrideComponentToken\n } = _ref;\n // Dropdown will handle menu style self. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n colorBgElevated,\n colorPrimary,\n colorError,\n colorErrorHover,\n colorTextLightSolid\n } = token;\n const {\n controlHeightLG,\n fontSize\n } = token;\n const menuArrowSize = fontSize / 7 * 5;\n // Menu Token\n const menuToken = mergeToken(token, {\n menuItemHeight: controlHeightLG,\n menuItemPaddingInline: token.margin,\n menuArrowSize,\n menuHorizontalHeight: controlHeightLG * 1.15,\n menuArrowOffset: `${menuArrowSize * 0.25}px`,\n menuPanelMaskInset: -7,\n menuSubMenuBg: colorBgElevated\n });\n const colorTextDark = new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString();\n const menuDarkToken = mergeToken(menuToken, {\n colorItemText: colorTextDark,\n colorItemTextHover: colorTextLightSolid,\n colorGroupTitle: colorTextDark,\n colorItemTextSelected: colorTextLightSolid,\n colorItemBg: '#001529',\n colorSubItemBg: '#000c17',\n colorItemBgActive: 'transparent',\n colorItemBgSelected: colorPrimary,\n colorActiveBarWidth: 0,\n colorActiveBarHeight: 0,\n colorActiveBarBorderSize: 0,\n // Disabled\n colorItemTextDisabled: new TinyColor(colorTextLightSolid).setAlpha(0.25).toRgbString(),\n // Danger\n colorDangerItemText: colorError,\n colorDangerItemTextHover: colorErrorHover,\n colorDangerItemTextSelected: colorTextLightSolid,\n colorDangerItemBgActive: colorError,\n colorDangerItemBgSelected: colorError,\n menuSubMenuBg: '#001529',\n // Horizontal\n colorItemTextSelectedHorizontal: colorTextLightSolid,\n colorItemBgSelectedHorizontal: colorPrimary\n }, Object.assign({}, overrideComponentToken));\n return [\n // Basic\n getBaseStyle(menuToken),\n // Horizontal\n getHorizontalStyle(menuToken),\n // Vertical\n getVerticalStyle(menuToken),\n // Theme\n getThemeStyle(menuToken, 'light'), getThemeStyle(menuDarkToken, 'dark'),\n // RTL\n getRTLStyle(menuToken),\n // Motion\n genCollapseMotion(menuToken), initSlideMotion(menuToken, 'slide-up'), initSlideMotion(menuToken, 'slide-down'), initZoomMotion(menuToken, 'zoom-big')];\n }, token => {\n const {\n colorPrimary,\n colorError,\n colorTextDisabled,\n colorErrorBg,\n colorText,\n colorTextDescription,\n colorBgContainer,\n colorFillAlter,\n colorFillContent,\n lineWidth,\n lineWidthBold,\n controlItemBgActive,\n colorBgTextHover\n } = token;\n return {\n dropdownWidth: 160,\n zIndexPopup: token.zIndexPopupBase + 50,\n radiusItem: token.borderRadiusLG,\n radiusSubMenuItem: token.borderRadiusSM,\n colorItemText: colorText,\n colorItemTextHover: colorText,\n colorItemTextHoverHorizontal: colorPrimary,\n colorGroupTitle: colorTextDescription,\n colorItemTextSelected: colorPrimary,\n colorItemTextSelectedHorizontal: colorPrimary,\n colorItemBg: colorBgContainer,\n colorItemBgHover: colorBgTextHover,\n colorItemBgActive: colorFillContent,\n colorSubItemBg: colorFillAlter,\n colorItemBgSelected: controlItemBgActive,\n colorItemBgSelectedHorizontal: 'transparent',\n colorActiveBarWidth: 0,\n colorActiveBarHeight: lineWidthBold,\n colorActiveBarBorderSize: lineWidth,\n // Disabled\n colorItemTextDisabled: colorTextDisabled,\n // Danger\n colorDangerItemText: colorError,\n colorDangerItemTextHover: colorError,\n colorDangerItemTextSelected: colorError,\n colorDangerItemBgActive: colorErrorBg,\n colorDangerItemBgSelected: colorErrorBg,\n itemMarginInline: token.marginXXS\n };\n });\n return useOriginHook(prefixCls);\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nconst OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport const OverrideProvider = props => {\n const {\n children\n } = props,\n restProps = __rest(props, [\"children\"]);\n const override = React.useContext(OverrideContext);\n const context = React.useMemo(() => Object.assign(Object.assign({}, override), restProps), [override, restProps.prefixCls,\n // restProps.expandIcon, Not mark as deps since this is a ReactNode\n restProps.mode, restProps.selectable\n // restProps.validator, Not mark as deps since this is a function\n ]);\n\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: context\n }, children);\n};\nexport default OverrideContext;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nconst MenuDivider = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n dashed\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"dashed\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu', customizePrefixCls);\n const classString = classNames({\n [`${prefixCls}-item-divider-dashed`]: !!dashed\n }, className);\n return /*#__PURE__*/React.createElement(Divider, Object.assign({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport classNames from 'classnames';\nexport default function Popup(props) {\n var showArrow = props.showArrow,\n arrowContent = props.arrowContent,\n children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, showArrow !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Popup from './Popup';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n showArrow = props.showArrow,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n showArrow: showArrow,\n arrowContent: arrowContent,\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nimport Popup from './Popup';\nexport { Popup };\nexport default Tooltip;","import { placements } from \"rc-tooltip/es/placements\";\nconst autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nconst autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nconst targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return Object.assign(Object.assign({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n const {\n arrowWidth = 4,\n horizontalArrowShift = 16,\n verticalArrowShift = 8,\n autoAdjustOverflow,\n arrowPointAtCenter\n } = config;\n const placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(key => {\n placementMap[key] = arrowPointAtCenter ? Object.assign(Object.assign({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset\n }) : Object.assign(Object.assign({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","import { PresetColors } from '../theme/internal';\nexport function genPresetColor(token, genCss) {\n return PresetColors.reduce((prev, colorKey) => {\n const lightColor = token[`${colorKey}-1`];\n const lightBorderColor = token[`${colorKey}-3`];\n const darkColor = token[`${colorKey}-6`];\n const textColor = token[`${colorKey}-7`];\n return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n lightColor,\n lightBorderColor,\n darkColor,\n textColor\n }));\n }, {});\n}","export const roundedArrow = (width, innerRadius, outerRadius, bgColor, boxShadow) => {\n const unitWidth = width / 2;\n const ax = unitWidth - outerRadius * (Math.sqrt(2) - 1);\n const ay = unitWidth;\n const bx = unitWidth + outerRadius * (1 - 1 / Math.sqrt(2));\n const by = unitWidth - outerRadius * (1 - 1 / Math.sqrt(2));\n const cx = 2 * unitWidth - innerRadius * (1 / Math.sqrt(2));\n const cy = innerRadius * (1 / Math.sqrt(2));\n const dx = 4 * unitWidth - cx;\n const dy = cy;\n const ex = 4 * unitWidth - bx;\n const ey = by;\n const fx = 4 * unitWidth - ax;\n const fy = ay;\n return {\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${innerRadius}px`\n },\n pointerEvents: 'none',\n width: width * 2,\n height: width * 2,\n overflow: 'hidden',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: width / Math.sqrt(2),\n height: width / Math.sqrt(2),\n bottom: 0,\n insetInline: 0,\n margin: 'auto',\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${innerRadius}px 0`\n },\n transform: 'translateY(50%) rotate(-135deg)',\n boxShadow,\n zIndex: 0,\n background: 'transparent'\n },\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: 0,\n width: width * 2,\n height: width / 2,\n background: bgColor,\n clipPath: `path('M ${ax} ${ay} A ${outerRadius} ${outerRadius} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${innerRadius} ${innerRadius} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${outerRadius} ${outerRadius} 0 0 0 ${fx} ${fy} Z')`,\n content: '\"\"'\n }\n };\n};","import { roundedArrow } from './roundedArrow';\nfunction connectArrowCls(classList) {\n let showArrowCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return classList.map(cls => `${showArrowCls}${cls}`).join(',');\n}\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffset(options) {\n const maxVerticalContentRadius = MAX_VERTICAL_CONTENT_RADIUS;\n const {\n sizePopupArrow,\n contentRadius,\n borderRadiusOuter,\n limitVerticalRadius\n } = options;\n const arrowInnerOffset = sizePopupArrow / 2 - Math.ceil(borderRadiusOuter * (Math.sqrt(2) - 1));\n const dropdownArrowOffset = (contentRadius > 12 ? contentRadius + 2 : 12) - arrowInnerOffset;\n const dropdownArrowOffsetVertical = limitVerticalRadius ? maxVerticalContentRadius - arrowInnerOffset : dropdownArrowOffset;\n return {\n dropdownArrowOffset,\n dropdownArrowOffsetVertical\n };\n}\nexport default function getArrowStyle(token, options) {\n const {\n componentCls,\n sizePopupArrow,\n marginXXS,\n borderRadiusXS,\n borderRadiusOuter,\n boxShadowPopoverArrow\n } = token;\n const {\n colorBg,\n showArrowCls,\n contentRadius = token.borderRadiusLG,\n limitVerticalRadius\n } = options;\n const {\n dropdownArrowOffsetVertical,\n dropdownArrowOffset\n } = getArrowOffset({\n sizePopupArrow,\n contentRadius,\n borderRadiusOuter,\n limitVerticalRadius\n });\n const dropdownArrowDistance = sizePopupArrow / 2 + marginXXS;\n return {\n [componentCls]: {\n // ============================ Basic ============================\n [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'block'\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBg, boxShadowPopoverArrow)), {\n '&:before': {\n background: colorBg\n }\n })],\n // ========================== Placement ==========================\n // Here handle the arrow position and rotate stuff\n // >>>>> Top\n [[`&-placement-top ${componentCls}-arrow`, `&-placement-topLeft ${componentCls}-arrow`, `&-placement-topRight ${componentCls}-arrow`].join(',')]: {\n bottom: 0,\n transform: 'translateY(100%) rotate(180deg)'\n },\n [`&-placement-top ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n },\n [`&-placement-topLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-topRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n // >>>>> Bottom\n [[`&-placement-bottom ${componentCls}-arrow`, `&-placement-bottomLeft ${componentCls}-arrow`, `&-placement-bottomRight ${componentCls}-arrow`].join(',')]: {\n top: 0,\n transform: `translateY(-100%)`\n },\n [`&-placement-bottom ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: `translateX(-50%) translateY(-100%)`\n },\n [`&-placement-bottomLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-bottomRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n // >>>>> Left\n [[`&-placement-left ${componentCls}-arrow`, `&-placement-leftTop ${componentCls}-arrow`, `&-placement-leftBottom ${componentCls}-arrow`].join(',')]: {\n right: {\n _skip_check_: true,\n value: 0\n },\n transform: 'translateX(100%) rotate(90deg)'\n },\n [`&-placement-left ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n },\n [`&-placement-leftTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-leftBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n },\n // >>>>> Right\n [[`&-placement-right ${componentCls}-arrow`, `&-placement-rightTop ${componentCls}-arrow`, `&-placement-rightBottom ${componentCls}-arrow`].join(',')]: {\n left: {\n _skip_check_: true,\n value: 0\n },\n transform: 'translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-right ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-rightTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-rightBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n },\n // =========================== Offset ============================\n // Offset the popover to account for the dropdown arrow\n // >>>>> Top\n [connectArrowCls([`&-placement-topLeft`, `&-placement-top`, `&-placement-topRight`], showArrowCls)]: {\n paddingBottom: dropdownArrowDistance\n },\n // >>>>> Bottom\n [connectArrowCls([`&-placement-bottomLeft`, `&-placement-bottom`, `&-placement-bottomRight`], showArrowCls)]: {\n paddingTop: dropdownArrowDistance\n },\n // >>>>> Left\n [connectArrowCls([`&-placement-leftTop`, `&-placement-left`, `&-placement-leftBottom`], showArrowCls)]: {\n paddingRight: {\n _skip_check_: true,\n value: dropdownArrowDistance\n }\n },\n // >>>>> Right\n [connectArrowCls([`&-placement-rightTop`, `&-placement-right`, `&-placement-rightBottom`], showArrowCls)]: {\n paddingLeft: {\n _skip_check_: true,\n value: dropdownArrowDistance\n }\n }\n }\n };\n}","import { initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genPresetColor, resetComponent } from '../../style';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nconst genTooltipStyle = token => {\n const {\n componentCls,\n // ant-tooltip\n tooltipMaxWidth,\n tooltipColor,\n tooltipBg,\n tooltipBorderRadius,\n zIndexPopup,\n controlHeight,\n boxShadowSecondary,\n paddingSM,\n paddingXS,\n tooltipRadiusOuter\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n zIndex: zIndexPopup,\n display: 'block',\n '&': [{\n width: 'max-content'\n }, {\n width: 'intrinsic'\n }],\n maxWidth: tooltipMaxWidth,\n visibility: 'visible',\n '&-hidden': {\n display: 'none'\n },\n '--antd-arrow-background-color': tooltipBg,\n // Wrapper for the tooltip content\n [`${componentCls}-inner`]: {\n minWidth: controlHeight,\n minHeight: controlHeight,\n padding: `${paddingSM / 2}px ${paddingXS}px`,\n color: tooltipColor,\n textAlign: 'start',\n textDecoration: 'none',\n wordWrap: 'break-word',\n backgroundColor: tooltipBg,\n borderRadius: tooltipBorderRadius,\n boxShadow: boxShadowSecondary\n },\n // Limit left and right placement radius\n [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n [`${componentCls}-inner`]: {\n borderRadius: Math.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n }\n }), genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls}-${colorKey}`]: {\n [`${componentCls}-inner`]: {\n backgroundColor: darkColor\n },\n [`${componentCls}-arrow`]: {\n '--antd-arrow-background-color': darkColor\n }\n }\n };\n })), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Arrow Style\n getArrowStyle(mergeToken(token, {\n borderRadiusOuter: tooltipRadiusOuter\n }), {\n colorBg: 'var(--antd-arrow-background-color)',\n showArrowCls: '',\n contentRadius: tooltipBorderRadius,\n limitVerticalRadius: true\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none'\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Tooltip', token => {\n // Popover use Tooltip as internal component. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n borderRadius,\n colorTextLightSolid,\n colorBgDefault,\n borderRadiusOuter\n } = token;\n const TooltipToken = mergeToken(token, {\n // default variables\n tooltipMaxWidth: 250,\n tooltipColor: colorTextLightSolid,\n tooltipBorderRadius: borderRadius,\n tooltipBg: colorBgDefault,\n tooltipRadiusOuter: borderRadiusOuter > 4 ? 4 : borderRadiusOuter\n });\n return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n }, _ref2 => {\n let {\n zIndexPopupBase,\n colorBgSpotlight\n } = _ref2;\n return {\n zIndexPopup: zIndexPopupBase + 70,\n colorBgDefault: colorBgSpotlight\n };\n });\n return useOriginHook(prefixCls);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (includeInverse) {\n return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n }\n return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n return PresetStatusColorTypes.includes(color);\n}","/* eslint-disable import/prefer-default-export */\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n const isInternalColor = isPresetColor(color);\n const className = classNames({\n [`${prefixCls}-${color}`]: color && isInternalColor\n });\n const overlayStyle = {};\n const arrowStyle = {};\n if (color && !isInternalColor) {\n overlayStyle.background = color;\n // @ts-ignore\n arrowStyle['--antd-arrow-background-color'] = color;\n }\n return {\n className,\n overlayStyle,\n arrowStyle\n };\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isValidElement, isFragment } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst splitObject = (obj, keys) => {\n const picked = {};\n const omitted = Object.assign({}, obj);\n keys.forEach(key => {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked,\n omitted\n };\n};\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n const elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n const {\n picked,\n omitted\n } = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']);\n const spanStyle = Object.assign(Object.assign({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n const buttonStyle = Object.assign(Object.assign({}, omitted), {\n pointerEvents: 'none'\n });\n const child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, `${prefixCls}-disabled-compatible-wrapper`)\n }, child);\n }\n return element;\n}\nconst Tooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n openClassName,\n getTooltipContainer,\n overlayClassName,\n color,\n overlayInnerStyle,\n children,\n afterOpenChange,\n afterVisibleChange\n } = props;\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`) : void 0;\n });\n }\n const [open, setOpen] = useMergedState(false, {\n value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n });\n const isNoTitle = () => {\n const {\n title,\n overlay\n } = props;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n const onOpenChange = vis => {\n var _a, _b;\n setOpen(isNoTitle() ? false : vis);\n if (!isNoTitle()) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n const getTooltipPlacements = () => {\n const {\n builtinPlacements,\n arrowPointAtCenter = false,\n autoAdjustOverflow = true\n } = props;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter,\n autoAdjustOverflow\n });\n };\n // 动态设置动画点\n const onPopupAlign = (domNode, align) => {\n const placements = getTooltipPlacements();\n // 当前返回的位置\n const placement = Object.keys(placements).find(key => {\n var _a, _b;\n return placements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && placements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (placement) {\n // 根据当前坐标设置动画点\n const rect = domNode.getBoundingClientRect();\n const transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = `${rect.height - align.offset[1]}px`;\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = `${-align.offset[1]}px`;\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = `${rect.width - align.offset[0]}px`;\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = `${-align.offset[0]}px`;\n }\n domNode.style.transformOrigin = `${transformOrigin.left} ${transformOrigin.top}`;\n }\n };\n const getOverlay = () => {\n const {\n title,\n overlay\n } = props;\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n };\n const {\n getPopupContainer,\n placement = 'top',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle\n } = props,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const injectFromPopover = props['data-popover-inject'];\n let tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && isNoTitle()) {\n tempOpen = false;\n }\n const child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n const childProps = child.props;\n const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, {\n [openClassName || `${prefixCls}-open`]: true\n }) : childProps.className;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls, !injectFromPopover);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const arrowContentStyle = colorInfo.arrowStyle;\n const customOverlayClassName = classNames(overlayClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, colorInfo.className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, otherProps, {\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n overlayStyle: Object.assign(Object.assign({}, arrowContentStyle), overlayStyle),\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-arrow-content`\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","import * as React from 'react';\nimport { Popup } from 'rc-tooltip';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n// ant-tooltip css-dev-only-do-not-override-w2s56n ant-tooltip-placement-top ant-tooltip-hidden\nexport default function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls,\n className,\n placement = 'top',\n title,\n color,\n overlayInnerStyle\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, true);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const arrowContentStyle = colorInfo.arrowStyle;\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className),\n style: arrowContentStyle\n }, /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls,\n overlayInnerStyle: formattedOverlayInnerStyle\n }), title)));\n}","import { createContext } from 'react';\nconst MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst MenuItem = props => {\n var _a;\n const {\n className,\n children,\n icon,\n title,\n danger\n } = props;\n const {\n prefixCls,\n firstLevel,\n direction,\n disableMenuItemTitleTooltip,\n inlineCollapsed: isInlineCollapsed\n } = React.useContext(MenuContext);\n const renderItemChildren = inlineCollapsed => {\n const wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, children);\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inline-collapsed-noicon`\n }, children.charAt(0));\n }\n }\n return wrapNode;\n };\n const {\n siderCollapsed\n } = React.useContext(SiderContext);\n let tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n const tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !isInlineCollapsed) {\n tooltipProps.title = null;\n // Reset `open` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.open = false;\n }\n const childrenLength = toArray(children).length;\n let returnNode = /*#__PURE__*/React.createElement(Item, Object.assign({}, omit(props, ['title', 'icon', 'danger']), {\n className: classNames({\n [`${prefixCls}-item-danger`]: danger,\n [`${prefixCls}-item-only-child`]: (icon ? childrenLength + 1 : childrenLength) === 1\n }, className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n }), renderItemChildren(isInlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: `${prefixCls}-inline-collapsed-tooltip`\n }), returnNode);\n }\n return returnNode;\n};\nexport default MenuItem;","import classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst SubMenu = props => {\n var _a;\n const {\n popupClassName,\n icon,\n title,\n theme: customTheme\n } = props;\n const context = React.useContext(MenuContext);\n const {\n prefixCls,\n inlineCollapsed,\n theme: contextTheme,\n mode\n } = context;\n const parentPath = useFullPath();\n let titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inline-collapsed-noicon`\n }, title.charAt(0)) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, title);\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n const titleIsSpan = isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, title));\n }\n const contextValue = React.useMemo(() => Object.assign(Object.assign({}, context), {\n firstLevel: false\n }), [context]);\n const popupOffset = mode === 'horizontal' ? [0, 8] : [10, 0];\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, Object.assign({\n popupOffset: popupOffset\n }, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, popupClassName, `${prefixCls}-${customTheme || contextTheme}`)\n })));\n};\nexport default SubMenu;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport MenuDivider from '../MenuDivider';\nimport MenuItem from '../MenuItem';\nimport SubMenu from '../SubMenu';\nfunction convertItemsToNodes(list) {\n return (list || []).map((opt, index) => {\n if (opt && typeof opt === 'object') {\n const _a = opt,\n {\n label,\n children,\n key,\n type\n } = _a,\n restProps = __rest(_a, [\"label\", \"children\", \"key\", \"type\"]);\n const mergedKey = key !== null && key !== void 0 ? key : `tmp-${index}`;\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(ItemGroup, Object.assign({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, Object.assign({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(MenuDivider, Object.assign({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, Object.assign({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(opt => opt);\n}\n// FIXME: Move logic here in v5\n/**\n * We simply convert `items` to ReactNode for reuse origin component logic. But we need move all the\n * logic from component into this hooks when in v5\n */\nexport default function useItems(items) {\n return React.useMemo(() => {\n if (!items) {\n return items;\n }\n return convertItemsToNodes(items);\n }, [items]);\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport RcMenu from 'rc-menu';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport omit from \"rc-util/es/omit\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport classNames from 'classnames';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport warning from '../_util/warning';\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport OverrideContext from './OverrideContext';\nimport useItems from './hooks/useItems';\nimport MenuContext from './MenuContext';\nconst InternalMenu = /*#__PURE__*/forwardRef((props, ref) => {\n var _a, _b;\n const override = React.useContext(OverrideContext);\n const overrideObj = override || {};\n const {\n getPrefixCls,\n getPopupContainer,\n direction\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const {\n prefixCls: customizePrefixCls,\n className,\n theme = 'light',\n expandIcon,\n _internalDisableMenuItemTitleTooltip,\n inlineCollapsed,\n siderCollapsed,\n items,\n children,\n rootClassName,\n mode,\n selectable,\n onClick\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"items\", \"children\", \"rootClassName\", \"mode\", \"selectable\", \"onClick\"]);\n const passedProps = omit(restProps, ['collapsedWidth']);\n // ========================= Items ===========================\n const mergedChildren = useItems(items) || children;\n // ======================== Warning ==========================\n process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning('items' in props && !children, 'Menu', '`children` will be removed in next major version. Please use `items` instead.') : void 0;\n (_a = overrideObj.validator) === null || _a === void 0 ? void 0 : _a.call(overrideObj, {\n mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n const onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = overrideObj.onClick) === null || _a === void 0 ? void 0 : _a.call(overrideObj);\n });\n // ========================== Mode ===========================\n const mergedMode = overrideObj.mode || mode;\n // ======================= Selectable ========================\n const mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : overrideObj.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n const mergedInlineCollapsed = React.useMemo(() => {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n const defaultMotions = {\n horizontal: {\n motionName: `${rootPrefixCls}-slide-up`\n },\n inline: initCollapseMotion(rootPrefixCls),\n other: {\n motionName: `${rootPrefixCls}-zoom-big`\n }\n };\n const prefixCls = getPrefixCls('menu', customizePrefixCls || overrideObj.prefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, !override);\n const menuClassName = classNames(`${prefixCls}-${theme}`, className);\n // ====================== Expand Icon ========================\n let mergedExpandIcon;\n if (typeof expandIcon === 'function') {\n mergedExpandIcon = expandIcon;\n } else {\n const beClone = expandIcon || overrideObj.expandIcon;\n mergedExpandIcon = cloneElement(beClone, {\n className: classNames(`${prefixCls}-submenu-expand-icon`, (_b = beClone === null || beClone === void 0 ? void 0 : beClone.props) === null || _b === void 0 ? void 0 : _b.className)\n });\n }\n // ======================== Context ==========================\n const contextValue = React.useMemo(() => ({\n prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n direction,\n firstLevel: true,\n theme,\n mode: mergedMode,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n }), [prefixCls, mergedInlineCollapsed, direction, _internalDisableMenuItemTitleTooltip, theme]);\n // ========================= Render ==========================\n return wrapSSR( /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, Object.assign({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: `${prefixCls}-${theme}`,\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref,\n rootClassName: classNames(rootClassName, hashId)\n }), mergedChildren))));\n});\nexport default InternalMenu;","import { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport InternalMenu from './menu';\nimport { SiderContext } from '../layout/Sider';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport SubMenu from './SubMenu';\nconst Menu = /*#__PURE__*/forwardRef((props, ref) => {\n const menuRef = useRef(null);\n const context = React.useContext(SiderContext);\n useImperativeHandle(ref, () => ({\n menu: menuRef.current,\n focus: options => {\n var _a;\n (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.focus(options);\n }\n }));\n return /*#__PURE__*/React.createElement(InternalMenu, Object.assign({\n ref: menuRef\n }, props, context));\n});\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.Divider = MenuDivider;\nMenu.ItemGroup = ItemGroup;\nif (process.env.NODE_ENV !== 'production') {\n Menu.displayName = 'Menu';\n}\nexport default Menu;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor, {\n theme: 'dark'\n });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4]\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#000';\n const colorTextBase = textBaseColor || '#fff';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n colorBgElevated: getSolidColor(colorBgBase, 12),\n colorBgContainer: getSolidColor(colorBgBase, 8),\n colorBgLayout: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getSolidColor(colorBgBase, 26),\n colorBorder: getSolidColor(colorBgBase, 26),\n colorBorderSecondary: getSolidColor(colorBgBase, 19)\n };\n};","import { generate } from '@ant-design/colors';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport defaultAlgorithm from '../default';\nconst derivative = (token, mapToken) => {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey], {\n theme: 'dark'\n });\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n return Object.assign(Object.assign(Object.assign({}, mergedMapToken), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n }));\n};\nexport default derivative;","import genControlHeight from '../shared/genControlHeight';\nimport defaultAlgorithm from '../default';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nimport genFontMapToken from '../shared/genFontMapToken';\nconst derivative = (token, mapToken) => {\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mergedMapToken), genCompactSizeMapToken(mapToken !== null && mapToken !== void 0 ? mapToken : token)), genFontMapToken(fontSize)), {\n // controlHeight\n controlHeight\n }), genControlHeight(Object.assign(Object.assign({}, mergedMapToken), {\n controlHeight\n })));\n};\nexport default derivative;","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n const compactSizeStep = sizeStep - 2;\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1)\n };\n}","/* eslint-disable import/prefer-default-export */\nimport { defaultConfig, useToken as useInternalToken } from './internal';\nimport defaultAlgorithm from './themes/default';\nimport darkAlgorithm from './themes/dark';\nimport compactAlgorithm from './themes/compact';\n// ZombieJ: We export as object to user but array in internal.\n// This is used to minimize the bundle size for antd package but safe to refactor as object also.\n// Please do not export internal `useToken` directly to avoid something export unexpected.\n/** Get current context Design Token. Will be different if you are using nest theme config. */\nfunction useToken() {\n const [theme, token, hashId] = useInternalToken();\n return {\n theme,\n token,\n hashId\n };\n}\nexport default {\n /** @private Test Usage. Do not use in production. */\n defaultConfig,\n /** Default seedToken */\n defaultSeed: defaultConfig.token,\n useToken,\n defaultAlgorithm,\n darkAlgorithm,\n compactAlgorithm\n};","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n setTriggerVisible = _ref.setTriggerVisible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus;\n var focusMenuRef = React.useRef(false);\n\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible && triggerRef.current) {\n var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2, _triggerRef$current$t3;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : (_triggerRef$current$t3 = _triggerRef$current$t2.focus) === null || _triggerRef$current$t3 === void 0 ? void 0 : _triggerRef$current$t3.call(_triggerRef$current$t2);\n setTriggerVisible(false);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(false);\n }\n }\n };\n\n var focusMenu = function focusMenu() {\n var _triggerRef$current2, _triggerRef$current2$, _triggerRef$current2$2, _triggerRef$current2$3;\n\n var elements = getFocusNodeList((_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.popupRef) === null || _triggerRef$current2$ === void 0 ? void 0 : (_triggerRef$current2$2 = _triggerRef$current2$.current) === null || _triggerRef$current2$2 === void 0 ? void 0 : (_triggerRef$current2$3 = _triggerRef$current2$2.getElement) === null || _triggerRef$current2$3 === void 0 ? void 0 : _triggerRef$current2$3.call(_triggerRef$current2$2));\n var firstElement = elements[0];\n\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus) {\n firstElement.focus();\n focusMenuRef.current = true;\n return true;\n }\n\n return false;\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n\n case TAB:\n {\n var focusResult = false;\n\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n\n break;\n }\n }\n };\n\n React.useEffect(function () {\n if (visible) {\n window.addEventListener('keydown', handleKeyDown);\n\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n useAccessibility({\n visible: mergedVisible,\n setTriggerVisible: setTriggerVisible,\n triggerRef: triggerRef,\n onVisibleChange: props.onVisibleChange,\n autoFocus: autoFocus\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(newVisible) {\n var onVisibleChangeProp = props.onVisibleChange;\n setTriggerVisible(newVisible);\n\n if (typeof onVisibleChangeProp === 'function') {\n onVisibleChangeProp(newVisible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), overlayElement);\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n builtinPlacements: placements\n }, otherProps), {}, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record;\n\n constructor(\n errors: ValidateError[],\n fields: Record,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise {\n if (option.first) {\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge(target: T, source: Partial): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise;\n validate(source: Values, callback: ValidateCallback): Promise;\n validate(source: Values): Promise;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise).then) {\n (res as Promise).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is 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: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nfunction cloneDeep(val) {\n if (Array.isArray(val)) {\n return cloneArrayDeep(val);\n } else if (_typeof(val) === 'object' && val !== null) {\n return cloneObjectDeep(val);\n }\n return val;\n}\nfunction cloneObjectDeep(val) {\n if (Object.getPrototypeOf(val) === Object.prototype) {\n var res = {};\n for (var key in val) {\n res[key] = cloneDeep(val[key]);\n }\n return res;\n }\n return val;\n}\nfunction cloneArrayDeep(val) {\n return val.map(function (item) {\n return cloneDeep(item);\n });\n}\nexport default cloneDeep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nimport cloneDeep from '../utils/cloneDeep';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var newStore = set(store, namePath, value, removeIfUndefined);\n return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n if (!values) {\n return newStore;\n }\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key];\n // If both are object (but target is not array), we use recursion to set deep value\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : cloneDeep(value); // Clone deep for arrays\n });\n\n return newStore;\n}\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { setValues } from './valueUtil';\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = setValues({}, defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 9;\n _context2.next = 12;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 12:\n _context2.next = 17;\n break;\n case 14:\n _context2.prev = 14;\n _context2.t0 = _context2[\"catch\"](9);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 17:\n if (!(!result.length && subRuleField)) {\n _context2.next = 22;\n break;\n }\n _context2.next = 20;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 20:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 22:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 25:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[9, 14]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n // Register on init\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n };\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n };\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n onMetaChange === null || onMetaChange === void 0 ? void 0 : onMetaChange(_objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n }));\n };\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n }\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n var filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n };\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n };\n _this.getErrors = function () {\n return _this.errors;\n };\n _this.getWarnings = function () {\n return _this.warnings;\n };\n _this.isListField = function () {\n return _this.props.isListField;\n };\n _this.isList = function () {\n return _this.props.isList;\n };\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath()\n };\n return meta;\n };\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n };\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n };\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n};\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n this.kvs = new Map();\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\", \"errors\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport cloneDeep from './utils/cloneDeep';\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n this.prevWithoutPreserves = null;\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = setValues({}, initialValues, _this.store);\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n };\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n // Not cloneDeep when without `namePath`\n return namePath.length ? cloneDeep(initValue) : initValue;\n };\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n this.watchList = [];\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n _this.watchList.forEach(function (callback) {\n callback(values, namePath);\n });\n }\n };\n this.timeoutId = null;\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n };\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n };\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n };\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n };\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n };\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n };\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(setValues({}, _this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n };\n this.setFields = function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n };\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n };\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n };\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n };\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = setValues(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n };\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n };\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n };\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n // Collect result in promise list\n var promiseList = [];\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n if (\n // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n }\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n return returnPromise;\n };\n this.submit = function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm;\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n }\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { FieldContext } from '.';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n form = args[1];\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (store) {\n var newValue = getValue(store, namePathRef.current);\n var nextValueStr = stringify(newValue);\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n // TODO: We can improve this perf in future\n var initialValue = getValue(getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '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 page_size: 'Page Size'\n};","var 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};\nexport default locale;","const locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n lang: Object.assign({\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 rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\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 Tour: {\n Next: 'Next',\n Previous: 'Previous',\n Finish: 'Finish'\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 QRCode: {\n expired: 'QR code expired',\n refresh: 'Refresh'\n }\n};\nexport default localeValues;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = Object.assign(Object.assign({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = Object.assign({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n const {\n locale = {},\n children,\n _ANT_MARK__\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(() => {\n changeConfirmLocale(locale && locale.Modal);\n return () => {\n changeConfirmLocale();\n };\n }, [locale]);\n const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n exist: true\n }), [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst LocaleReceiver = props => {\n const {\n componentName = 'global',\n defaultLocale,\n children\n } = props;\n const antLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n const getLocaleCode = React.useMemo(() => {\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 }, [antLocale]);\n return children(getLocale, getLocaleCode, antLocale);\n};\nexport default LocaleReceiver;\nexport const useLocaleReceiver = (componentName, defaultLocale) => {\n const antLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [getLocale];\n};","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n let {\n children,\n disabled\n } = _ref;\n const originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { createTheme } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleReceiver from '../locale/LocaleReceiver';\nimport defaultLocale from '../locale/en_US';\nimport { DesignTokenContext } from '../theme/internal';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useTheme from './hooks/useTheme';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nexport { ConfigContext, ConfigConsumer };\nexport { defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form', 'select'];\nexport const defaultPrefixCls = 'ant';\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nconst setGlobalConfig = _ref => {\n let {\n prefixCls,\n iconPrefixCls,\n theme\n } = _ref;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n});\nconst ProviderChildren = props => {\n var _a, _b;\n const {\n children,\n csp: customCsp,\n autoInsertSpaceInButton,\n form,\n locale,\n componentSize,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n legacyLocale,\n parentContext,\n iconPrefixCls: customIconPrefixCls,\n theme,\n componentDisabled\n } = props;\n const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n const {\n prefixCls\n } = props;\n if (customizePrefixCls) return customizePrefixCls;\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n const shouldWrapSSR = iconPrefixCls !== parentContext.iconPrefixCls;\n const csp = customCsp || parentContext.csp;\n const wrapSSR = useStyle(iconPrefixCls);\n const mergedTheme = useTheme(theme, parentContext.theme);\n const baseConfig = {\n csp,\n autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n getPrefixCls,\n iconPrefixCls,\n theme: mergedTheme\n };\n const config = Object.assign({}, parentContext);\n Object.keys(baseConfig).forEach(key => {\n if (baseConfig[key] !== undefined) {\n config[key] = baseConfig[key];\n }\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(propName => {\n const propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n const prevKeys = Object.keys(prevConfig);\n const currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n });\n const memoIconContextValue = React.useMemo(() => ({\n prefixCls: iconPrefixCls,\n csp\n }), [iconPrefixCls, csp]);\n let childNode = shouldWrapSSR ? wrapSSR(children) : children;\n // Additional Form provider\n let validateMessages = {};\n if (locale) {\n validateMessages = ((_a = locale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n if (form && form.validateMessages) {\n validateMessages = Object.assign(Object.assign({}, validateMessages), form.validateMessages);\n }\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n // ================================ Dynamic theme ================================\n const memoTheme = React.useMemo(() => {\n const _a = mergedTheme || {},\n {\n algorithm,\n token\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : undefined;\n return Object.assign(Object.assign({}, rest), {\n theme: themeObj,\n token: Object.assign(Object.assign({}, defaultSeedToken), token)\n });\n }, [mergedTheme]);\n if (theme) {\n childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n value: memoTheme\n }, childNode);\n }\n // =================================== Render ===================================\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nconst ConfigProvider = props => /*#__PURE__*/React.createElement(LocaleReceiver, null, (_, __, legacyLocale) => /*#__PURE__*/React.createElement(ConfigConsumer, null, context => /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n parentContext: context,\n legacyLocale: legacyLocale\n}, props))));\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nif (process.env.NODE_ENV !== 'production') {\n ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport { useToken } from '../../theme/internal';\nconst useStyle = iconPrefixCls => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister({\n theme,\n token,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls]\n }, () => [{\n [`.${iconPrefixCls}`]: Object.assign(Object.assign({}, resetIcon()), {\n [`.${iconPrefixCls} .${iconPrefixCls}-icon`]: {\n display: 'block'\n }\n })\n }]);\n};\nexport default useStyle;","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { defaultConfig } from '../../theme/internal';\nexport default function useTheme(theme, parentTheme) {\n const themeConfig = theme || {};\n const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? defaultConfig : parentTheme;\n const mergedTheme = useMemo(() => {\n if (!theme) {\n return parentTheme;\n }\n // Override\n const mergedComponents = Object.assign({}, parentThemeConfig.components);\n Object.keys(theme.components || {}).forEach(componentName => {\n mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n });\n // Base token\n return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n components: mergedComponents\n });\n }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n const nextTheme = next[index];\n return !isEqual(prevTheme, nextTheme, true);\n }));\n return mergedTheme;\n}","import useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport ConfigProvider, { ConfigContext } from '../config-provider';\n/* istanbul ignore next */\nexport default function genPurePanel(Component, defaultPrefixCls, getDropdownCls) {\n return function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls,\n style\n } = props;\n const holderRef = React.useRef(null);\n const [popupHeight, setPopupHeight] = React.useState(0);\n const [popupWidth, setPopupWidth] = React.useState(0);\n const [open, setOpen] = useMergedState(false, {\n value: props.open\n });\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls(defaultPrefixCls || 'select', customizePrefixCls);\n React.useEffect(() => {\n // We do not care about ssr\n setOpen(true);\n if (typeof ResizeObserver !== 'undefined') {\n const resizeObserver = new ResizeObserver(entries => {\n const element = entries[0].target;\n setPopupHeight(element.offsetHeight + 8);\n setPopupWidth(element.offsetWidth);\n });\n const interval = setInterval(() => {\n var _a;\n const dropdownCls = getDropdownCls ? `.${getDropdownCls(prefixCls)}` : `.${prefixCls}-dropdown`;\n const popup = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(dropdownCls);\n if (popup) {\n clearInterval(interval);\n resizeObserver.observe(popup);\n }\n }, 10);\n return () => {\n clearInterval(interval);\n resizeObserver.disconnect();\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n theme: {\n token: {\n motionDurationFast: '0.01s',\n motionDurationMid: '0.01s',\n motionDurationSlow: '0.01s'\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: holderRef,\n style: {\n paddingBottom: popupHeight,\n position: 'relative',\n width: 'fit-content',\n minWidth: popupWidth\n }\n }, /*#__PURE__*/React.createElement(Component, Object.assign({}, props, {\n style: Object.assign(Object.assign({}, style), {\n margin: 0\n }),\n open: open,\n visible: open,\n getPopupContainer: () => holderRef.current\n }))));\n };\n}","const genSpaceCompactStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n display: 'inline-flex',\n '&-block': {\n display: 'flex',\n width: '100%'\n },\n '&-vertical': {\n flexDirection: 'column'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSpaceCompactStyle;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","import { genComponentStyleHook } from '../../theme/internal';\nimport genSpaceCompactStyle from './compact';\nconst genSpaceStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n display: 'inline-flex',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-vertical': {\n flexDirection: 'column'\n },\n '&-align': {\n flexDirection: 'column',\n '&-center': {\n alignItems: 'center'\n },\n '&-start': {\n alignItems: 'flex-start'\n },\n '&-end': {\n alignItems: 'flex-end'\n },\n '&-baseline': {\n alignItems: 'baseline'\n }\n },\n [`${componentCls}-space-item`]: {\n '&:empty': {\n display: 'none'\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Space', token => [genSpaceStyle(token), genSpaceCompactStyle(token)]);","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport const useCompactItemContext = (prefixCls, direction) => {\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const compactItemClassnames = React.useMemo(() => {\n if (!compactItemContext) return '';\n const {\n compactDirection,\n isFirstItem,\n isLastItem\n } = compactItemContext;\n const separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames({\n [`${prefixCls}-compact${separator}item`]: true,\n [`${prefixCls}-compact${separator}first-item`]: isFirstItem,\n [`${prefixCls}-compact${separator}last-item`]: isLastItem,\n [`${prefixCls}-compact${separator}item-rtl`]: direction === 'rtl'\n });\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames\n };\n};\nexport const NoCompactStyle = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nconst CompactItem = _a => {\n var {\n children\n } = _a,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nconst Compact = props => {\n const {\n getPrefixCls,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size = 'middle',\n direction,\n block,\n prefixCls: customizePrefixCls,\n className,\n children\n } = props,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"children\"]);\n const prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const clx = classNames(prefixCls, hashId, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-vertical`]: direction === 'vertical'\n }, className);\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const childNodes = toArray(children);\n const nodes = React.useMemo(() => childNodes.map((child, i) => {\n const key = child && child.key || `${prefixCls}-item-${i}`;\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: size,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n }), [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: clx\n }, restProps), nodes));\n};\nexport default Compact;","import { genComponentStyleHook } from '../../theme/internal';\nconst genWaveStyle = token => {\n const {\n componentCls,\n colorPrimary\n } = token;\n return {\n [componentCls]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none',\n boxSizing: 'border-box',\n color: `var(--wave-color, ${colorPrimary})`,\n boxShadow: `0 0 0 0 currentcolor`,\n opacity: 0.2,\n // =================== Motion ===================\n '&.wave-motion-appear': {\n transition: [`box-shadow 0.4s ${token.motionEaseOutCirc}`, `opacity 2s ${token.motionEaseOutCirc}`].join(','),\n '&-active': {\n boxShadow: `0 0 0 6px currentcolor`,\n opacity: 0\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Wave', token => [genWaveStyle(token)]);","export function isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n const match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nexport function isValidWaveColor(color) {\n return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && isNotGrey(color) && !/rgba\\((?:\\d*, ){3}0\\)/.test(color) &&\n // any transparent rgba color\n color !== 'transparent';\n}\nexport function getTargetWaveColor(node) {\n const {\n borderTopColor,\n borderColor,\n backgroundColor\n } = getComputedStyle(node);\n if (isValidWaveColor(borderTopColor)) {\n return borderTopColor;\n }\n if (isValidWaveColor(borderColor)) {\n return borderColor;\n }\n if (isValidWaveColor(backgroundColor)) {\n return backgroundColor;\n }\n return null;\n}","import * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport raf from \"rc-util/es/raf\";\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { getTargetWaveColor } from './util';\nfunction validateNum(value) {\n return Number.isNaN(value) ? 0 : value;\n}\nconst WaveEffect = props => {\n const {\n className,\n target\n } = props;\n const divRef = React.useRef(null);\n const [color, setWaveColor] = React.useState(null);\n const [borderRadius, setBorderRadius] = React.useState([]);\n const [left, setLeft] = React.useState(0);\n const [top, setTop] = React.useState(0);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const [enabled, setEnabled] = React.useState(false);\n const waveStyle = {\n left,\n top,\n width,\n height,\n borderRadius: borderRadius.map(radius => `${radius}px`).join(' ')\n };\n if (color) {\n waveStyle['--wave-color'] = color;\n }\n function syncPos() {\n const nodeStyle = getComputedStyle(target);\n // Get wave color from target\n setWaveColor(getTargetWaveColor(target));\n const isStatic = nodeStyle.position === 'static';\n // Rect\n const {\n borderLeftWidth,\n borderTopWidth\n } = nodeStyle;\n setLeft(isStatic ? target.offsetLeft : validateNum(-parseFloat(borderLeftWidth)));\n setTop(isStatic ? target.offsetTop : validateNum(-parseFloat(borderTopWidth)));\n setWidth(target.offsetWidth);\n setHeight(target.offsetHeight);\n // Get border radius\n const {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius\n } = nodeStyle;\n setBorderRadius([borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius].map(radius => validateNum(parseFloat(radius))));\n }\n React.useEffect(() => {\n if (target) {\n // We need delay to check position here\n // since UI may change after click\n const id = raf(() => {\n syncPos();\n setEnabled(true);\n });\n // Add resize observer to follow size\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(syncPos);\n resizeObserver.observe(target);\n }\n return () => {\n raf.cancel(id);\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n }\n }, []);\n if (!enabled) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionAppear: true,\n motionName: \"wave-motion\",\n motionDeadline: 5000,\n onAppearEnd: (_, event) => {\n var _a;\n if (event.deadline || event.propertyName === 'opacity') {\n const holder = (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;\n unmount(holder).then(() => {\n var _a;\n (_a = holder.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(holder);\n });\n }\n return false;\n }\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: divRef,\n className: classNames(className, motionClassName),\n style: waveStyle\n });\n });\n};\nexport default function showWaveEffect(node, className) {\n // Create holder\n const holder = document.createElement('div');\n holder.style.position = 'absolute';\n holder.style.left = `0px`;\n holder.style.top = `0px`;\n node === null || node === void 0 ? void 0 : node.insertBefore(holder, node === null || node === void 0 ? void 0 : node.firstChild);\n render( /*#__PURE__*/React.createElement(WaveEffect, {\n target: node,\n className: className\n }), holder);\n}","import showWaveEffect from './WaveEffect';\nexport default function useWave(nodeRef, className) {\n function showWave() {\n const node = nodeRef.current;\n showWaveEffect(node, className);\n }\n return showWave;\n}","import classNames from 'classnames';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport React, { useContext, useRef } from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement } from '../reactNode';\nimport useStyle from './style';\nimport useWave from './useWave';\nconst Wave = props => {\n const {\n children,\n disabled\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const containerRef = useRef(null);\n // ============================== Style ===============================\n const prefixCls = getPrefixCls('wave');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Wave ===============================\n const showWave = useWave(containerRef, classNames(prefixCls, hashId));\n // ============================== Effect ==============================\n React.useEffect(() => {\n const node = containerRef.current;\n if (!node || node.nodeType !== 1 || disabled) {\n return;\n }\n // Click handler\n const onClick = e => {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || !isVisible(e.target) ||\n // No need wave\n !node.getAttribute || node.getAttribute('disabled') || node.disabled || node.className.includes('disabled') || node.className.includes('-leave')) {\n return;\n }\n showWave();\n };\n // Bind events\n node.addEventListener('click', onClick, true);\n return () => {\n node.removeEventListener('click', onClick, true);\n };\n }, [disabled]);\n // ============================== Render ==============================\n if (! /*#__PURE__*/React.isValidElement(children)) {\n return children !== null && children !== void 0 ? children : null;\n }\n const ref = supportRef(children) ? composeRef(children.ref, containerRef) : containerRef;\n return cloneElement(children, {\n ref\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Wave.displayName = 'Wave';\n}\nexport default Wave;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nimport warning from '../_util/warning';\nexport const GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nconst ButtonGroup = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n size,\n className\n } = props,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n const prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n const [,, hashId] = useToken();\n let sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n case 'middle':\n case undefined:\n break;\n default:\n process.env.NODE_ENV !== \"production\" ? warning(!size, 'Button.Group', 'Invalid prop `size`.') : void 0;\n }\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n value: size\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes\n })));\n};\nexport default ButtonGroup;","import React from 'react';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nconst rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nexport const isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nexport function isString(str) {\n return typeof str === 'string';\n}\nexport function isUnBorderedButtonType(type) {\n return type === 'text' || type === 'link';\n}\nfunction splitCNCharsBySpace(child, needInserted) {\n if (child === null || child === undefined) {\n return;\n }\n const SPACE = needInserted ? ' ' : '';\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n if (typeof child === 'string') {\n return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n if (isFragment(child)) {\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n return child;\n}\nexport function spaceChildren(children, needInserted) {\n let isPrevChildPure = false;\n const childList = [];\n React.Children.forEach(children, child => {\n const type = typeof child;\n const isCurrentChildPure = type === 'string' || type === 'number';\n if (isPrevChildPure && isCurrentChildPure) {\n const lastIndex = childList.length - 1;\n const lastChild = childList[lastIndex];\n childList[lastIndex] = `${lastChild}${child}`;\n } else {\n childList.push(child);\n }\n isPrevChildPure = isCurrentChildPure;\n });\n return React.Children.map(childList, child => splitCNCharsBySpace(child, needInserted));\n}\nconst ButtonTypes = ['default', 'primary', 'ghost', 'dashed', 'link', 'text'];\nconst ButtonShapes = ['default', 'circle', 'round'];\nconst ButtonHTMLTypes = ['submit', 'button', 'reset'];","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\nLoadingOutlined.displayName = 'LoadingOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","import LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport CSSMotion from 'rc-motion';\nimport React from 'react';\nconst getCollapsedWidth = () => ({\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n});\nconst getRealWidth = node => ({\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n});\nconst LoadingIcon = _ref => {\n let {\n prefixCls,\n loading,\n existIcon\n } = _ref;\n const visible = !!loading;\n if (existIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-loading-icon`\n }, /*#__PURE__*/React.createElement(LoadingOutlined, null));\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n // We do not really use this motionName\n motionName: `${prefixCls}-loading-icon-motion`,\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, (_ref2, ref) => {\n let {\n className,\n style\n } = _ref2;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-loading-icon`,\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: className\n }));\n });\n};\nexport default LoadingIcon;","const genButtonBorderStyle = (buttonTypeCls, borderColor) => ({\n // Border\n [`> span, > ${buttonTypeCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineEndColor: borderColor\n }\n }\n },\n '&:not(:first-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineStartColor: borderColor\n }\n }\n }\n }\n});\nconst genGroupStyle = token => {\n const {\n componentCls,\n fontSize,\n lineWidth,\n colorPrimaryHover,\n colorErrorHover\n } = token;\n return {\n [`${componentCls}-group`]: [{\n position: 'relative',\n display: 'inline-flex',\n // Border\n [`> span, > ${componentCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n '&:not(:first-child)': {\n marginInlineStart: -lineWidth,\n [`&, & > ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n },\n [componentCls]: {\n position: 'relative',\n zIndex: 1,\n [`&:hover,\n &:focus,\n &:active`]: {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n },\n [`${componentCls}-icon-only`]: {\n fontSize\n }\n },\n // Border Color\n genButtonBorderStyle(`${componentCls}-primary`, colorPrimaryHover), genButtonBorderStyle(`${componentCls}-danger`, colorErrorHover)]\n };\n};\nexport default genGroupStyle;","// handle border collapse\nfunction compactItemBorder(token, parentCls, options) {\n const {\n focusElCls,\n focus,\n borderElCls\n } = options;\n const childCombinator = borderElCls ? '> *' : '';\n const hoverEffects = ['hover', focus ? 'focus' : null, 'active'].filter(Boolean).map(n => `&:${n} ${childCombinator}`).join(',');\n return {\n [`&-item:not(${parentCls}-last-item)`]: {\n marginInlineEnd: -token.lineWidth\n },\n '&-item': Object.assign(Object.assign({\n [hoverEffects]: {\n zIndex: 2\n }\n }, focusElCls ? {\n [`&${focusElCls}`]: {\n zIndex: 2\n }\n } : {}), {\n [`&[disabled] ${childCombinator}`]: {\n zIndex: 0\n }\n })\n };\n}\n// handle border-radius\nfunction compactItemBorderRadius(prefixCls, parentCls, options) {\n const {\n borderElCls\n } = options;\n const childCombinator = borderElCls ? `> ${borderElCls}` : '';\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item) ${childCombinator}`]: {\n borderRadius: 0\n },\n [`&-item:not(${parentCls}-last-item)${parentCls}-first-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&-item:not(${parentCls}-first-item)${parentCls}-last-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n };\n}\nexport function genCompactItemStyle(token) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n focus: true\n };\n const {\n componentCls\n } = token;\n const compactCls = `${componentCls}-compact`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemBorder(token, compactCls, options)), compactItemBorderRadius(componentCls, compactCls, options))\n };\n}","function compactItemVerticalBorder(token, parentCls) {\n return {\n // border collapse\n [`&-item:not(${parentCls}-last-item)`]: {\n marginBottom: -token.lineWidth\n },\n '&-item': {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n }\n };\n}\nfunction compactItemBorderVerticalRadius(prefixCls, parentCls) {\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item)`]: {\n borderRadius: 0\n },\n [`&-item${parentCls}-first-item:not(${parentCls}-last-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderEndEndRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&-item${parentCls}-last-item:not(${parentCls}-first-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0\n }\n }\n };\n}\nexport function genCompactItemVerticalStyle(token) {\n const compactCls = `${token.componentCls}-compact-vertical`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemVerticalBorder(token, compactCls)), compactItemBorderVerticalRadius(token.componentCls, compactCls))\n };\n}","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genGroupStyle from './group';\nimport { genFocusStyle } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genCompactItemVerticalStyle } from '../../style/compact-item-vertical';\n// ============================== Shared ==============================\nconst genSharedButtonStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [componentCls]: {\n outline: 'none',\n position: 'relative',\n display: 'inline-block',\n fontWeight: 400,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n backgroundImage: 'none',\n backgroundColor: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n userSelect: 'none',\n touchAction: 'manipulation',\n lineHeight: token.lineHeight,\n color: token.colorText,\n '> span': {\n display: 'inline-block'\n },\n // Leave a space between icon and text.\n [`> ${iconCls} + span, > span + ${iconCls}`]: {\n marginInlineStart: token.marginXS\n },\n '> a': {\n color: 'currentColor'\n },\n '&:not(:disabled)': Object.assign({}, genFocusStyle(token)),\n // make `btn-icon-only` not too narrow\n [`&-icon-only${componentCls}-compact-item`]: {\n flex: 'none'\n },\n // Special styles for Primary Button\n [`&-compact-item${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: -token.lineWidth,\n insetInlineStart: -token.lineWidth,\n display: 'inline-block',\n width: token.lineWidth,\n height: `calc(100% + ${token.lineWidth * 2}px)`,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n },\n // Special styles for Primary Button\n '&-compact-vertical-item': {\n [`&${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-vertical-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: -token.lineWidth,\n insetInlineStart: -token.lineWidth,\n display: 'inline-block',\n width: `calc(100% + ${token.lineWidth * 2}px)`,\n height: token.lineWidth,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n }\n }\n }\n };\n};\nconst genHoverActiveButtonStyle = (hoverStyle, activeStyle) => ({\n '&:not(:disabled)': {\n '&:hover': hoverStyle,\n '&:active': activeStyle\n }\n});\n// ============================== Shape ===============================\nconst genCircleButtonStyle = token => ({\n minWidth: token.controlHeight,\n paddingInlineStart: 0,\n paddingInlineEnd: 0,\n borderRadius: '50%'\n});\nconst genRoundButtonStyle = token => ({\n borderRadius: token.controlHeight,\n paddingInlineStart: token.controlHeight / 2,\n paddingInlineEnd: token.controlHeight / 2\n});\n// =============================== Type ===============================\nconst genDisabledStyle = token => ({\n cursor: 'not-allowed',\n borderColor: token.colorBorder,\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n boxShadow: 'none'\n});\nconst genGhostButtonStyle = (btnCls, textColor, borderColor, textColorDisabled, borderColorDisabled, hoverStyle, activeStyle) => ({\n [`&${btnCls}-background-ghost`]: Object.assign(Object.assign({\n color: textColor || undefined,\n backgroundColor: 'transparent',\n borderColor: borderColor || undefined,\n boxShadow: 'none'\n }, genHoverActiveButtonStyle(Object.assign({\n backgroundColor: 'transparent'\n }, hoverStyle), Object.assign({\n backgroundColor: 'transparent'\n }, activeStyle))), {\n '&:disabled': {\n cursor: 'not-allowed',\n color: textColorDisabled || undefined,\n borderColor: borderColorDisabled || undefined\n }\n })\n});\nconst genSolidDisabledButtonStyle = token => ({\n '&:disabled': Object.assign({}, genDisabledStyle(token))\n});\nconst genSolidButtonStyle = token => Object.assign({}, genSolidDisabledButtonStyle(token));\nconst genPureDisabledButtonStyle = token => ({\n '&:disabled': {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n }\n});\n// Type: Default\nconst genDefaultButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genSolidButtonStyle(token)), {\n backgroundColor: token.colorBgContainer,\n borderColor: token.colorBorder,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlTmpOutline}`\n}), genHoverActiveButtonStyle({\n color: token.colorPrimaryHover,\n borderColor: token.colorPrimaryHover\n}, {\n color: token.colorPrimaryActive,\n borderColor: token.colorPrimaryActive\n})), genGhostButtonStyle(token.componentCls, token.colorBgContainer, token.colorBgContainer, token.colorTextDisabled, token.colorBorder)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign(Object.assign({\n color: token.colorError,\n borderColor: token.colorError\n }, genHoverActiveButtonStyle({\n color: token.colorErrorHover,\n borderColor: token.colorErrorBorderHover\n }, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n })), genGhostButtonStyle(token.componentCls, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder)), genSolidDisabledButtonStyle(token))\n});\n// Type: Primary\nconst genPrimaryButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genSolidButtonStyle(token)), {\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimary,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlOutline}`\n}), genHoverActiveButtonStyle({\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimaryHover\n}, {\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimaryActive\n})), genGhostButtonStyle(token.componentCls, token.colorPrimary, token.colorPrimary, token.colorTextDisabled, token.colorBorder, {\n color: token.colorPrimaryHover,\n borderColor: token.colorPrimaryHover\n}, {\n color: token.colorPrimaryActive,\n borderColor: token.colorPrimaryActive\n})), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign(Object.assign({\n backgroundColor: token.colorError,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.colorErrorOutline}`\n }, genHoverActiveButtonStyle({\n backgroundColor: token.colorErrorHover\n }, {\n backgroundColor: token.colorErrorActive\n })), genGhostButtonStyle(token.componentCls, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder, {\n color: token.colorErrorHover,\n borderColor: token.colorErrorHover\n }, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n })), genSolidDisabledButtonStyle(token))\n});\n// Type: Dashed\nconst genDashedButtonStyle = token => Object.assign(Object.assign({}, genDefaultButtonStyle(token)), {\n borderStyle: 'dashed'\n});\n// Type: Link\nconst genLinkButtonStyle = token => Object.assign(Object.assign(Object.assign({\n color: token.colorLink\n}, genHoverActiveButtonStyle({\n color: token.colorLinkHover\n}, {\n color: token.colorLinkActive\n})), genPureDisabledButtonStyle(token)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign({\n color: token.colorError\n }, genHoverActiveButtonStyle({\n color: token.colorErrorHover\n }, {\n color: token.colorErrorActive\n })), genPureDisabledButtonStyle(token))\n});\n// Type: Text\nconst genTextButtonStyle = token => Object.assign(Object.assign(Object.assign({}, genHoverActiveButtonStyle({\n color: token.colorText,\n backgroundColor: token.colorBgTextHover\n}, {\n color: token.colorText,\n backgroundColor: token.colorBgTextActive\n})), genPureDisabledButtonStyle(token)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign({\n color: token.colorError\n }, genPureDisabledButtonStyle(token)), genHoverActiveButtonStyle({\n color: token.colorErrorHover,\n backgroundColor: token.colorErrorBg\n }, {\n color: token.colorErrorHover,\n backgroundColor: token.colorErrorBg\n }))\n});\n// Href and Disabled\nconst genDisabledButtonStyle = token => Object.assign(Object.assign({}, genDisabledStyle(token)), {\n [`&${token.componentCls}:hover`]: Object.assign({}, genDisabledStyle(token))\n});\nconst genTypeButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-default`]: genDefaultButtonStyle(token),\n [`${componentCls}-primary`]: genPrimaryButtonStyle(token),\n [`${componentCls}-dashed`]: genDashedButtonStyle(token),\n [`${componentCls}-link`]: genLinkButtonStyle(token),\n [`${componentCls}-text`]: genTextButtonStyle(token),\n [`${componentCls}-disabled`]: genDisabledButtonStyle(token)\n };\n};\n// =============================== Size ===============================\nconst genSizeButtonStyle = function (token) {\n let sizePrefixCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const {\n componentCls,\n iconCls,\n controlHeight,\n fontSize,\n lineHeight,\n lineWidth,\n borderRadius,\n buttonPaddingHorizontal\n } = token;\n const paddingVertical = Math.max(0, (controlHeight - fontSize * lineHeight) / 2 - lineWidth);\n const paddingHorizontal = buttonPaddingHorizontal - lineWidth;\n const iconOnlyCls = `${componentCls}-icon-only`;\n return [\n // Size\n {\n [`${componentCls}${sizePrefixCls}`]: {\n fontSize,\n height: controlHeight,\n padding: `${paddingVertical}px ${paddingHorizontal}px`,\n borderRadius,\n [`&${iconOnlyCls}`]: {\n width: controlHeight,\n paddingInlineStart: 0,\n paddingInlineEnd: 0,\n [`&${componentCls}-round`]: {\n width: 'auto'\n },\n '> span': {\n transform: 'scale(1.143)' // 14px -> 16px\n }\n },\n\n // Loading\n [`&${componentCls}-loading`]: {\n opacity: token.opacityLoading,\n cursor: 'default'\n },\n [`${componentCls}-loading-icon`]: {\n transition: `width ${token.motionDurationSlow} ${token.motionEaseInOut}, opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`\n },\n [`&:not(${iconOnlyCls}) ${componentCls}-loading-icon > ${iconCls}`]: {\n marginInlineEnd: token.marginXS\n }\n }\n },\n // Shape - patch prefixCls again to override solid border radius style\n {\n [`${componentCls}${componentCls}-circle${sizePrefixCls}`]: genCircleButtonStyle(token)\n }, {\n [`${componentCls}${componentCls}-round${sizePrefixCls}`]: genRoundButtonStyle(token)\n }];\n};\nconst genSizeBaseButtonStyle = token => genSizeButtonStyle(token);\nconst genSizeSmallButtonStyle = token => {\n const smallToken = mergeToken(token, {\n controlHeight: token.controlHeightSM,\n padding: token.paddingXS,\n buttonPaddingHorizontal: 8,\n borderRadius: token.borderRadiusSM\n });\n return genSizeButtonStyle(smallToken, `${token.componentCls}-sm`);\n};\nconst genSizeLargeButtonStyle = token => {\n const largeToken = mergeToken(token, {\n controlHeight: token.controlHeightLG,\n fontSize: token.fontSizeLG,\n borderRadius: token.borderRadiusLG\n });\n return genSizeButtonStyle(largeToken, `${token.componentCls}-lg`);\n};\nconst genBlockButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n [`&${componentCls}-block`]: {\n width: '100%'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Button', token => {\n const {\n controlTmpOutline,\n paddingContentHorizontal\n } = token;\n const buttonToken = mergeToken(token, {\n colorOutlineDefault: controlTmpOutline,\n buttonPaddingHorizontal: paddingContentHorizontal\n });\n return [\n // Shared\n genSharedButtonStyle(buttonToken),\n // Size\n genSizeSmallButtonStyle(buttonToken), genSizeBaseButtonStyle(buttonToken), genSizeLargeButtonStyle(buttonToken),\n // Block\n genBlockButtonStyle(buttonToken),\n // Group (type, ghost, danger, disabled, loading)\n genTypeButtonStyle(buttonToken),\n // Button Group\n genGroupStyle(buttonToken),\n // Space Compact\n genCompactItemStyle(token, {\n focus: false\n }), genCompactItemVerticalStyle(token)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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-disable react/button-has-type */\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport Group, { GroupSizeContext } from './button-group';\nimport { isTwoCNChar, isUnBorderedButtonType, spaceChildren } from './buttonHelpers';\nimport LoadingIcon from './LoadingIcon';\nimport useStyle from './style';\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n return {\n type\n };\n}\nconst InternalButton = (props, ref) => {\n const {\n loading = false,\n prefixCls: customizePrefixCls,\n type = 'default',\n danger,\n shape = 'default',\n size: customizeSize,\n disabled: customDisabled,\n className,\n children,\n icon,\n ghost = false,\n block = false,\n // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n htmlType = 'button'\n } = props,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"disabled\", \"className\", \"children\", \"icon\", \"ghost\", \"block\", \"htmlType\"]);\n const {\n getPrefixCls,\n autoInsertSpaceInButton,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('btn', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const size = React.useContext(SizeContext);\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const groupSize = React.useContext(GroupSizeContext);\n const [innerLoading, setLoading] = React.useState(!!loading);\n const [hasTwoCNChar, setHasTwoCNChar] = React.useState(false);\n const buttonRef = ref || /*#__PURE__*/React.createRef();\n const isNeedInserted = () => React.Children.count(children) === 1 && !icon && !isUnBorderedButtonType(type);\n const fixTwoCNChar = () => {\n // FIXME: for HOC usage like \n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n const buttonText = buttonRef.current.textContent;\n if (isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n };\n const loadingOrDelay = typeof loading === 'boolean' ? loading : (loading === null || loading === void 0 ? void 0 : loading.delay) || true;\n React.useEffect(() => {\n let delayTimer = null;\n if (typeof loadingOrDelay === 'number') {\n delayTimer = window.setTimeout(() => {\n delayTimer = null;\n setLoading(loadingOrDelay);\n }, loadingOrDelay);\n } else {\n setLoading(loadingOrDelay);\n }\n function cleanupTimer() {\n if (delayTimer) {\n window.clearTimeout(delayTimer);\n delayTimer = null;\n }\n }\n return cleanupTimer;\n }, [loadingOrDelay]);\n React.useEffect(fixTwoCNChar, [buttonRef]);\n const handleClick = e => {\n const {\n onClick\n } = props;\n // FIXME: https://github.com/ant-design/ant-design/issues/30207\n if (innerLoading || mergedDisabled) {\n e.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Button', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n const autoInsertSpace = autoInsertSpaceInButton !== false;\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const sizeClassNameMap = {\n large: 'lg',\n small: 'sm',\n middle: undefined\n };\n const sizeFullname = compactSize || groupSize || customizeSize || size;\n const sizeCls = sizeFullname ? sizeClassNameMap[sizeFullname] || '' : '';\n const iconType = innerLoading ? 'loading' : icon;\n const linkButtonRestProps = omit(rest, ['navigate']);\n const hrefAndDisabled = linkButtonRestProps.href !== undefined && mergedDisabled;\n const classes = classNames(prefixCls, hashId, {\n [`${prefixCls}-${shape}`]: shape !== 'default' && shape,\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-icon-only`]: !children && children !== 0 && !!iconType,\n [`${prefixCls}-background-ghost`]: ghost && !isUnBorderedButtonType(type),\n [`${prefixCls}-loading`]: innerLoading,\n [`${prefixCls}-two-chinese-chars`]: hasTwoCNChar && autoInsertSpace && !innerLoading,\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-dangerous`]: !!danger,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-disabled`]: hrefAndDisabled\n }, compactItemClassnames, className);\n const iconNode = icon && !innerLoading ? icon : /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n });\n const kids = children || children === 0 ? spaceChildren(children, isNeedInserted() && autoInsertSpace) : null;\n if (linkButtonRestProps.href !== undefined) {\n return wrapSSR( /*#__PURE__*/React.createElement(\"a\", Object.assign({}, linkButtonRestProps, {\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids));\n }\n let buttonNode = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, rest, {\n type: htmlType,\n className: classes,\n onClick: handleClick,\n disabled: mergedDisabled,\n ref: buttonRef\n }), iconNode, kids);\n if (!isUnBorderedButtonType(type)) {\n buttonNode = /*#__PURE__*/React.createElement(Wave, {\n disabled: !!innerLoading\n }, buttonNode);\n }\n return wrapSSR(buttonNode);\n};\nconst Button = /*#__PURE__*/React.forwardRef(InternalButton);\nif (process.env.NODE_ENV !== 'production') {\n Button.displayName = 'Button';\n}\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport const canUseDocElement = () => canUseDom() && window.document.documentElement;\nexport { isStyleSupport };\nlet flexGapSupported;\nexport const detectFlexGapSupported = () => {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n const flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","import Button from './button';\nexport * from './buttonHelpers';\nexport default Button;","import * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (() => {\n const [flexible, setFlexible] = React.useState(false);\n React.useEffect(() => {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import * as React from 'react';\nimport { SpaceContext } from '.';\nexport default function Item(_ref) {\n let {\n className,\n direction,\n index,\n marginDirection,\n children,\n split,\n wrap\n } = _ref;\n const {\n horizontalSize,\n verticalSize,\n latestIndex,\n supportFlexGap\n } = React.useContext(SpaceContext);\n let style = {};\n if (!supportFlexGap) {\n if (direction === 'vertical') {\n if (index < latestIndex) {\n style = {\n marginBottom: horizontalSize / (split ? 2 : 1)\n };\n }\n } else {\n style = Object.assign(Object.assign({}, index < latestIndex && {\n [marginDirection]: horizontalSize / (split ? 2 : 1)\n }), wrap && {\n paddingBottom: verticalSize\n });\n }\n }\n if (children === null || children === undefined) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n className: `${className}-split`,\n style: style\n }, split));\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport Item from './Item';\nimport Compact from './Compact';\nimport useStyle from './style';\nexport const SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false\n});\nconst spaceSize = {\n small: 8,\n middle: 16,\n large: 24\n};\nfunction getNumberSize(size) {\n return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\nconst Space = props => {\n const {\n getPrefixCls,\n space,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size = (space === null || space === void 0 ? void 0 : space.size) || 'small',\n align,\n className,\n children,\n direction = 'horizontal',\n prefixCls: customizePrefixCls,\n split,\n style,\n wrap = false\n } = props,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\"]);\n const supportFlexGap = useFlexGapSupport();\n const [horizontalSize, verticalSize] = React.useMemo(() => (Array.isArray(size) ? size : [size, size]).map(item => getNumberSize(item)), [size]);\n const childNodes = toArray(children, {\n keepEmpty: true\n });\n const mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n const prefixCls = getPrefixCls('space', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cn = classNames(prefixCls, hashId, `${prefixCls}-${direction}`, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-align-${mergedAlign}`]: mergedAlign\n }, className);\n const itemClassName = `${prefixCls}-item`;\n const marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight';\n // Calculate latest one\n let latestIndex = 0;\n const nodes = childNodes.map((child, i) => {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n const key = child && child.key || `${itemClassName}-${i}`;\n return /*#__PURE__*/React.createElement(Item, {\n className: itemClassName,\n key: key,\n direction: direction,\n index: i,\n marginDirection: marginDirection,\n split: split,\n wrap: wrap\n }, child);\n });\n const spaceContext = React.useMemo(() => ({\n horizontalSize,\n verticalSize,\n latestIndex,\n supportFlexGap\n }), [horizontalSize, verticalSize, latestIndex, supportFlexGap]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n const gapStyle = {};\n if (wrap) {\n gapStyle.flexWrap = 'wrap';\n // Patch for gap not support\n if (!supportFlexGap) {\n gapStyle.marginBottom = -verticalSize;\n }\n }\n if (supportFlexGap) {\n gapStyle.columnGap = horizontalSize;\n gapStyle.rowGap = verticalSize;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: cn,\n style: Object.assign(Object.assign({}, gapStyle), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContext.Provider, {\n value: spaceContext\n }, nodes)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Space.displayName = 'Space';\n}\nconst CompoundedSpace = Space;\nCompoundedSpace.Compact = Compact;\nexport default CompoundedSpace;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const moveDownIn = new Keyframes('antMoveDownIn', {\n '0%': {\n transform: 'translate3d(0, 100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveDownOut = new Keyframes('antMoveDownOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(0, 100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveLeftIn = new Keyframes('antMoveLeftIn', {\n '0%': {\n transform: 'translate3d(-100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveLeftOut = new Keyframes('antMoveLeftOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(-100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveRightIn = new Keyframes('antMoveRightIn', {\n '0%': {\n transform: 'translate3d(100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveRightOut = new Keyframes('antMoveRightOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveUpIn = new Keyframes('antMoveUpIn', {\n '0%': {\n transform: 'translate3d(0, -100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveUpOut = new Keyframes('antMoveUpOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(0, -100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nconst moveMotion = {\n 'move-up': {\n inKeyframes: moveUpIn,\n outKeyframes: moveUpOut\n },\n 'move-down': {\n inKeyframes: moveDownIn,\n outKeyframes: moveDownOut\n },\n 'move-left': {\n inKeyframes: moveLeftIn,\n outKeyframes: moveLeftOut\n },\n 'move-right': {\n inKeyframes: moveRightIn,\n outKeyframes: moveRightOut\n }\n};\nexport const initMoveMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = moveMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","const genButtonStyle = token => {\n const {\n componentCls,\n antCls,\n paddingXS,\n opacityLoading\n } = token;\n return {\n [`${componentCls}-button`]: {\n whiteSpace: 'nowrap',\n [`&${antCls}-btn-group > ${antCls}-btn`]: {\n [`&-loading, &-loading + ${antCls}-btn`]: {\n cursor: 'default',\n pointerEvents: 'none',\n opacity: opacityLoading\n },\n [`&:last-child:not(:first-child):not(${antCls}-btn-icon-only)`]: {\n paddingInline: paddingXS\n }\n }\n }\n };\n};\nexport default genButtonStyle;","const genStatusStyle = token => {\n const {\n componentCls,\n menuCls,\n colorError,\n colorTextLightSolid\n } = token;\n const itemCls = `${menuCls}-item`;\n return {\n [`${componentCls}, ${componentCls}-menu-submenu`]: {\n [`${menuCls} ${itemCls}`]: {\n [`&${itemCls}-danger:not(${itemCls}-disabled)`]: {\n color: colorError,\n '&:hover': {\n color: colorTextLightSolid,\n backgroundColor: colorError\n }\n }\n }\n }\n };\n};\nexport default genStatusStyle;","import { getArrowOffset } from '../../style/placementArrow';\nimport { initMoveMotion, initSlideMotion, initZoomMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genButtonStyle from './button';\nimport genStatusStyle from './status';\nimport { genFocusStyle, resetComponent, roundedArrow } from '../../style';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n menuCls,\n zIndexPopup,\n dropdownArrowDistance,\n dropdownArrowOffset,\n sizePopupArrow,\n antCls,\n iconCls,\n motionDurationMid,\n dropdownPaddingVertical,\n fontSize,\n dropdownEdgeChildPadding,\n colorTextDisabled,\n fontSizeIcon,\n controlPaddingHorizontal,\n colorBgElevated,\n boxShadowPopoverArrow\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n display: 'block',\n // A placeholder out of dropdown visible range to avoid close when user moving\n '&::before': {\n position: 'absolute',\n insetBlock: -dropdownArrowDistance + sizePopupArrow / 2,\n // insetInlineStart: -7, // FIXME: Seems not work for hidden element\n zIndex: -9999,\n opacity: 0.0001,\n content: '\"\"'\n },\n [`${componentCls}-wrap`]: {\n position: 'relative',\n [`${antCls}-btn > ${iconCls}-down`]: {\n fontSize: fontSizeIcon\n },\n [`${iconCls}-down::before`]: {\n transition: `transform ${motionDurationMid}`\n }\n },\n [`${componentCls}-wrap-open`]: {\n [`${iconCls}-down::before`]: {\n transform: `rotate(180deg)`\n }\n },\n [`\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n `]: {\n display: 'none'\n },\n // =============================================================\n // == Arrow ==\n // =============================================================\n // Offset the popover to account for the dropdown arrow\n [`\n &-show-arrow${componentCls}-placement-topLeft,\n &-show-arrow${componentCls}-placement-top,\n &-show-arrow${componentCls}-placement-topRight\n `]: {\n paddingBottom: dropdownArrowDistance\n },\n [`\n &-show-arrow${componentCls}-placement-bottomLeft,\n &-show-arrow${componentCls}-placement-bottom,\n &-show-arrow${componentCls}-placement-bottomRight\n `]: {\n paddingTop: dropdownArrowDistance\n },\n // Note: .popover-arrow is outer, .popover-arrow:after is inner\n [`${componentCls}-arrow`]: Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'block'\n }, roundedArrow(sizePopupArrow, token.borderRadiusXS, token.borderRadiusOuter, colorBgElevated, boxShadowPopoverArrow)),\n [`\n &-placement-top > ${componentCls}-arrow,\n &-placement-topLeft > ${componentCls}-arrow,\n &-placement-topRight > ${componentCls}-arrow\n `]: {\n bottom: dropdownArrowDistance,\n transform: 'translateY(100%) rotate(180deg)'\n },\n [`&-placement-top > ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n },\n [`&-placement-topLeft > ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-topRight > ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`\n &-placement-bottom > ${componentCls}-arrow,\n &-placement-bottomLeft > ${componentCls}-arrow,\n &-placement-bottomRight > ${componentCls}-arrow\n `]: {\n top: dropdownArrowDistance,\n transform: `translateY(-100%)`\n },\n [`&-placement-bottom > ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: `translateY(-100%) translateX(-50%)`\n },\n [`&-placement-bottomLeft > ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-bottomRight > ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n // =============================================================\n // == Motion ==\n // =============================================================\n // When position is not enough for dropdown, the placement will revert.\n // We will handle this with revert motion name.\n [`&${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomRight,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-top,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-top,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-top,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topRight`]: {\n animationName: slideDownOut\n }\n })\n }, {\n // =============================================================\n // == Menu ==\n // =============================================================\n [`${componentCls} ${menuCls}`]: {\n position: 'relative',\n margin: 0\n },\n [`${menuCls}-submenu-popup`]: {\n position: 'absolute',\n zIndex: zIndexPopup,\n background: 'transparent',\n boxShadow: 'none',\n transformOrigin: '0 0',\n 'ul, li': {\n listStyle: 'none',\n margin: 0\n }\n },\n [`${componentCls}, ${componentCls}-menu-submenu`]: {\n [menuCls]: Object.assign(Object.assign({\n padding: dropdownEdgeChildPadding,\n listStyleType: 'none',\n backgroundColor: colorBgElevated,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary\n }, genFocusStyle(token)), {\n [`${menuCls}-item-group-title`]: {\n padding: `${dropdownPaddingVertical}px ${controlPaddingHorizontal}px`,\n color: token.colorTextDescription,\n transition: `all ${motionDurationMid}`\n },\n // ======================= Item Content =======================\n [`${menuCls}-item`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n },\n [`${menuCls}-item-icon`]: {\n minWidth: fontSize,\n marginInlineEnd: token.marginXS,\n fontSize: token.fontSizeSM\n },\n [`${menuCls}-title-content`]: {\n flex: 'auto',\n '> a': {\n color: 'inherit',\n transition: `all ${motionDurationMid}`,\n '&:hover': {\n color: 'inherit'\n },\n '&::after': {\n position: 'absolute',\n inset: 0,\n content: '\"\"'\n }\n }\n },\n // =========================== Item ===========================\n [`${menuCls}-item, ${menuCls}-submenu-title`]: Object.assign(Object.assign({\n clear: 'both',\n margin: 0,\n padding: `${dropdownPaddingVertical}px ${controlPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${motionDurationMid}`,\n borderRadius: token.borderRadiusSM,\n [`&:hover, &-active`]: {\n backgroundColor: token.controlItemBgHover\n }\n }, genFocusStyle(token)), {\n '&-selected': {\n color: token.colorPrimary,\n backgroundColor: token.controlItemBgActive,\n '&:hover, &-active': {\n backgroundColor: token.controlItemBgActiveHover\n }\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n color: colorTextDisabled,\n backgroundColor: colorBgElevated,\n cursor: 'not-allowed'\n },\n a: {\n pointerEvents: 'none'\n }\n },\n '&-divider': {\n height: 1,\n margin: `${token.marginXXS}px 0`,\n overflow: 'hidden',\n lineHeight: 0,\n backgroundColor: token.colorSplit\n },\n [`${componentCls}-menu-submenu-expand-icon`]: {\n position: 'absolute',\n insetInlineEnd: token.paddingXS,\n [`${componentCls}-menu-submenu-arrow-icon`]: {\n marginInlineEnd: '0 !important',\n color: token.colorTextDescription,\n fontSize: fontSizeIcon,\n fontStyle: 'normal'\n }\n }\n }),\n [`${menuCls}-item-group-list`]: {\n margin: `0 ${token.marginXS}px`,\n padding: 0,\n listStyle: 'none'\n },\n [`${menuCls}-submenu-title`]: {\n paddingInlineEnd: controlPaddingHorizontal + token.fontSizeSM\n },\n [`${menuCls}-submenu-vertical`]: {\n position: 'relative'\n },\n [`${menuCls}-submenu${menuCls}-submenu-disabled ${componentCls}-menu-submenu-title`]: {\n [`&, ${componentCls}-menu-submenu-arrow-icon`]: {\n color: colorTextDisabled,\n backgroundColor: colorBgElevated,\n cursor: 'not-allowed'\n }\n },\n // https://github.com/ant-design/ant-design/issues/19264\n [`${menuCls}-submenu-selected ${componentCls}-menu-submenu-title`]: {\n color: token.colorPrimary\n }\n })\n }\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down'), initZoomMotion(token, 'zoom-big')]];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Dropdown', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const {\n marginXXS,\n sizePopupArrow,\n controlHeight,\n fontSize,\n lineHeight,\n paddingXXS,\n componentCls,\n borderRadiusOuter,\n borderRadiusLG\n } = token;\n const dropdownPaddingVertical = (controlHeight - fontSize * lineHeight) / 2;\n const {\n dropdownArrowOffset\n } = getArrowOffset({\n sizePopupArrow,\n contentRadius: borderRadiusLG,\n borderRadiusOuter\n });\n const dropdownToken = mergeToken(token, {\n menuCls: `${componentCls}-menu`,\n rootPrefixCls,\n dropdownArrowDistance: sizePopupArrow / 2 + marginXXS,\n dropdownArrowOffset,\n dropdownPaddingVertical,\n dropdownEdgeChildPadding: paddingXXS\n });\n return [genBaseStyle(dropdownToken), genButtonStyle(dropdownToken), genStatusStyle(dropdownToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50\n}));","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport Space from '../space';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nimport useStyle from './style';\nconst DropdownButton = props => {\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n type = 'default',\n danger,\n disabled,\n loading,\n onClick,\n htmlType,\n children,\n className,\n menu,\n arrow,\n autoFocus,\n overlay,\n trigger,\n align,\n open,\n onOpenChange,\n placement,\n getPopupContainer,\n href,\n icon = /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n title,\n buttonsRender = buttons => buttons,\n mouseEnterDelay,\n mouseLeaveDelay,\n overlayClassName,\n overlayStyle,\n destroyPopupOnHide,\n dropdownRender\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"open\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\", \"dropdownRender\"]);\n const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n const buttonPrefixCls = `${prefixCls}-button`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const dropdownProps = {\n menu,\n arrow,\n autoFocus,\n align,\n disabled,\n trigger: disabled ? [] : trigger,\n onOpenChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay,\n mouseLeaveDelay,\n overlayClassName,\n overlayStyle,\n destroyPopupOnHide,\n dropdownRender\n };\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const classes = classNames(buttonPrefixCls, compactItemClassnames, className, hashId);\n if ('overlay' in props) {\n dropdownProps.overlay = overlay;\n }\n if ('open' in props) {\n dropdownProps.open = open;\n }\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n const leftButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n disabled: disabled,\n loading: loading,\n onClick: onClick,\n htmlType: htmlType,\n href: href,\n title: title\n }, children);\n const rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n icon: icon\n });\n const [leftButtonToRender, rightButtonToRender] = buttonsRender([leftButton, rightButton]);\n return wrapSSR( /*#__PURE__*/React.createElement(Space.Compact, Object.assign({\n className: classes,\n size: compactSize,\n block: true\n }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, Object.assign({}, dropdownProps), rightButtonToRender)));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","import RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcDropdown from 'rc-dropdown';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport Menu from '../menu';\nimport { ConfigContext } from '../config-provider';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport genPurePanel from '../_util/PurePanel';\nimport getPlacements from '../_util/placements';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { NoCompactStyle } from '../space/Compact';\nimport DropdownButton from './dropdown-button';\nimport useStyle from './style';\nconst Placements = ['topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom'];\nconst Dropdown = props => {\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', `\\`${deprecatedName}\\` is deprecated which will be removed in next major version, please use \\`${newName}\\` instead.`) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!('overlay' in props), 'Dropdown', '`overlay` is deprecated. Please use `menu` instead.') : void 0;\n }\n const getTransitionName = () => {\n const rootPrefixCls = getPrefixCls();\n const {\n placement = '',\n transitionName\n } = props;\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.includes('top')) {\n return `${rootPrefixCls}-slide-down`;\n }\n return `${rootPrefixCls}-slide-up`;\n };\n const getPlacement = () => {\n const {\n placement\n } = props;\n if (!placement) {\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }\n if (placement.includes('Center')) {\n const newPlacement = placement.slice(0, placement.indexOf('Center'));\n process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'Dropdown', `You are using '${placement}' placement in Dropdown, which is deprecated. Try to use '${newPlacement}' instead.`) : void 0;\n return newPlacement;\n }\n return placement;\n };\n const {\n menu,\n arrow,\n prefixCls: customizePrefixCls,\n children,\n trigger,\n disabled,\n dropdownRender,\n getPopupContainer,\n overlayClassName,\n open,\n onOpenChange,\n // Deprecated\n visible,\n onVisibleChange,\n mouseEnterDelay = 0.15,\n mouseLeaveDelay = 0.1\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref2 => {\n let [deprecatedName, newName] = _ref2;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`) : void 0;\n });\n }\n const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const child = React.Children.only(children);\n const dropdownTrigger = cloneElement(child, {\n className: classNames(`${prefixCls}-trigger`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, child.props.className),\n disabled\n });\n const triggerActions = disabled ? [] : trigger;\n let alignPoint;\n if (triggerActions && triggerActions.includes('contextMenu')) {\n alignPoint = true;\n }\n // =========================== Open ============================\n const [mergedOpen, setOpen] = useMergedState(false, {\n value: open !== null && open !== void 0 ? open : visible\n });\n const onInnerOpenChange = useEvent(nextOpen => {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n setOpen(nextOpen);\n });\n // =========================== Overlay ============================\n const overlayClassNameCustomized = classNames(overlayClassName, hashId, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n const builtinPlacements = getPlacements({\n arrowPointAtCenter: typeof arrow === 'object' && arrow.pointAtCenter,\n autoAdjustOverflow: true\n });\n const onMenuClick = React.useCallback(() => {\n setOpen(false);\n }, []);\n const renderOverlay = () => {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n const {\n overlay\n } = props;\n let overlayNode;\n if (menu === null || menu === void 0 ? void 0 : menu.items) {\n overlayNode = /*#__PURE__*/React.createElement(Menu, Object.assign({}, menu));\n } else if (typeof overlay === 'function') {\n overlayNode = overlay();\n } else {\n overlayNode = overlay;\n }\n if (dropdownRender) {\n overlayNode = dropdownRender(overlayNode);\n }\n overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n return /*#__PURE__*/React.createElement(OverrideProvider, {\n prefixCls: `${prefixCls}-menu`,\n expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-menu-submenu-arrow`\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: `${prefixCls}-menu-submenu-arrow-icon`\n })),\n mode: \"vertical\",\n selectable: false,\n onClick: onMenuClick,\n validator: _ref3 => {\n let {\n mode\n } = _ref3;\n // Warning if use other mode\n process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'Dropdown', `mode=\"${mode}\" is not supported for Dropdown's Menu.`) : void 0;\n }\n }, /*#__PURE__*/React.createElement(NoCompactStyle, null, overlayNode));\n };\n // ============================ Render ============================\n return wrapSSR( /*#__PURE__*/React.createElement(RcDropdown, Object.assign({\n alignPoint: alignPoint\n }, props, {\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n visible: mergedOpen,\n builtinPlacements: builtinPlacements,\n arrow: !!arrow,\n overlayClassName: overlayClassNameCustomized,\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: getTransitionName(),\n trigger: triggerActions,\n overlay: renderOverlay,\n placement: getPlacement(),\n onVisibleChange: onInnerOpenChange\n }), dropdownTrigger));\n};\nDropdown.Button = DropdownButton;\n// We don't care debug panel\nconst PurePanel = genPurePanel(Dropdown, 'dropdown', prefixCls => prefixCls);\n/* istanbul ignore next */\nconst WrapPurePanel = props => /*#__PURE__*/React.createElement(PurePanel, Object.assign({}, props), /*#__PURE__*/React.createElement(\"span\", null));\nDropdown._InternalPanelDoNotUseOrYouWillBeFired = WrapPurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Dropdown.displayName = 'Dropdown';\n}\nexport default Dropdown;","import Dropdown from './dropdown';\nexport default Dropdown;","import * as React from 'react';\nexport default function useForceUpdate() {\n const [, forceUpdate] = React.useReducer(x => x + 1, 0);\n return forceUpdate;\n}","import React from 'react';\nimport { useToken } from '../theme/internal';\nexport const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst getResponsiveMap = token => ({\n xs: `(max-width: ${token.screenXSMax}px)`,\n sm: `(min-width: ${token.screenSM}px)`,\n md: `(min-width: ${token.screenMD}px)`,\n lg: `(min-width: ${token.screenLG}px)`,\n xl: `(min-width: ${token.screenXL}px)`,\n xxl: `(min-width: ${token.screenXXL}px)`\n});\n/**\n * Ensures that the breakpoints token are valid, in good order\n * For each breakpoint : screenMin <= screen <= screenMax and screenMax <= nextScreenMin\n */\nconst validateBreakpoints = token => {\n const indexableToken = token;\n const revBreakpoints = [].concat(responsiveArray).reverse();\n revBreakpoints.forEach((breakpoint, i) => {\n const breakpointUpper = breakpoint.toUpperCase();\n const screenMin = `screen${breakpointUpper}Min`;\n const screen = `screen${breakpointUpper}`;\n if (!(indexableToken[screenMin] <= indexableToken[screen])) {\n throw new Error(`${screenMin}<=${screen} fails : !(${indexableToken[screenMin]}<=${indexableToken[screen]})`);\n }\n if (i < revBreakpoints.length - 1) {\n const screenMax = `screen${breakpointUpper}Max`;\n if (!(indexableToken[screen] <= indexableToken[screenMax])) {\n throw new Error(`${screen}<=${screenMax} fails : !(${indexableToken[screen]}<=${indexableToken[screenMax]})`);\n }\n const nextBreakpointUpperMin = revBreakpoints[i + 1].toUpperCase();\n const nextScreenMin = `screen${nextBreakpointUpperMin}Min`;\n if (!(indexableToken[screenMax] <= indexableToken[nextScreenMin])) {\n throw new Error(`${screenMax}<=${nextScreenMin} fails : !(${indexableToken[screenMax]}<=${indexableToken[nextScreenMin]})`);\n }\n }\n });\n return token;\n};\nexport default function useResponsiveObserver() {\n const [, token] = useToken();\n const responsiveMap = getResponsiveMap(validateBreakpoints(token));\n // To avoid repeat create instance, we add `useMemo` here.\n return React.useMemo(() => {\n const subscribers = new Map();\n let subUid = -1;\n let screens = {};\n return {\n matchHandlers: {},\n dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(func => func(screens));\n return subscribers.size >= 1;\n },\n subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe(paramToken) {\n subscribers.delete(paramToken);\n if (!subscribers.size) this.unregister();\n },\n unregister() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const handler = this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const listener = _ref => {\n let {\n matches\n } = _ref;\n this.dispatch(Object.assign(Object.assign({}, screens), {\n [screen]: matches\n }));\n };\n const mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n this.matchHandlers[matchMediaQuery] = {\n mql,\n listener\n };\n listener(mql);\n });\n },\n responsiveMap\n };\n }, [token]);\n}","import { useEffect, useRef } from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport useResponsiveObserver from '../../_util/responsiveObserver';\nfunction useBreakpoint() {\n let refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n const screensRef = useRef({});\n const forceUpdate = useForceUpdate();\n const responsiveObserver = useResponsiveObserver();\n useEffect(() => {\n const token = responsiveObserver.subscribe(supportScreens => {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","import * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext('default');\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst genBaseStyle = token => {\n const {\n antCls,\n componentCls,\n iconCls,\n avatarBg,\n avatarColor,\n avatarSizeBase,\n avatarSizeLG,\n avatarSizeSM,\n avatarFontSizeBase,\n avatarFontSizeLG,\n avatarFontSizeSM,\n borderRadius,\n borderRadiusLG,\n borderRadiusSM,\n lineWidth,\n lineType\n } = token;\n // Avatar size style\n const avatarSizeStyle = (size, fontSize, radius) => ({\n width: size,\n height: size,\n lineHeight: `${size - lineWidth * 2}px`,\n borderRadius: '50%',\n [`&${componentCls}-square`]: {\n borderRadius: radius\n },\n [`${componentCls}-string`]: {\n position: 'absolute',\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transformOrigin: '0 center'\n },\n [`&${componentCls}-icon`]: {\n fontSize,\n [`> ${iconCls}`]: {\n margin: 0\n }\n }\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n overflow: 'hidden',\n color: avatarColor,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n verticalAlign: 'middle',\n background: avatarBg,\n border: `${lineWidth}px ${lineType} transparent`,\n [`&-image`]: {\n background: 'transparent'\n },\n [`${antCls}-image-img`]: {\n display: 'block'\n }\n }), avatarSizeStyle(avatarSizeBase, avatarFontSizeBase, borderRadius)), {\n [`&-lg`]: Object.assign({}, avatarSizeStyle(avatarSizeLG, avatarFontSizeLG, borderRadiusLG)),\n [`&-sm`]: Object.assign({}, avatarSizeStyle(avatarSizeSM, avatarFontSizeSM, borderRadiusSM)),\n '> img': {\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'cover'\n }\n })\n };\n};\nconst genGroupStyle = token => {\n const {\n componentCls,\n avatarGroupBorderColor,\n avatarGroupSpace\n } = token;\n return {\n [`${componentCls}-group`]: {\n display: 'inline-flex',\n [`${componentCls}`]: {\n borderColor: avatarGroupBorderColor\n },\n [`> *:not(:first-child)`]: {\n marginInlineStart: avatarGroupSpace\n }\n }\n };\n};\nexport default genComponentStyleHook('Avatar', token => {\n const {\n colorTextLightSolid,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n fontSize,\n fontSizeLG,\n fontSizeXL,\n fontSizeHeading3,\n marginXS,\n colorBorderBg,\n colorTextPlaceholder\n } = token;\n const avatarToken = mergeToken(token, {\n avatarBg: colorTextPlaceholder,\n avatarColor: colorTextLightSolid,\n avatarSizeBase: controlHeight,\n avatarSizeLG: controlHeightLG,\n avatarSizeSM: controlHeightSM,\n avatarFontSizeBase: Math.round((fontSizeLG + fontSizeXL) / 2),\n avatarFontSizeLG: fontSizeHeading3,\n avatarFontSizeSM: fontSize,\n avatarGroupSpace: -marginXS,\n avatarGroupBorderColor: colorBorderBg\n });\n return [genBaseStyle(avatarToken), genGroupStyle(avatarToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { responsiveArray } from '../_util/responsiveObserver';\nimport warning from '../_util/warning';\nimport SizeContext from './SizeContext';\nimport useStyle from './style';\nconst InternalAvatar = (props, ref) => {\n const groupSize = React.useContext(SizeContext);\n const [scale, setScale] = React.useState(1);\n const [mounted, setMounted] = React.useState(false);\n const [isImgExist, setIsImgExist] = React.useState(true);\n const avatarNodeRef = React.useRef(null);\n const avatarChildrenRef = React.useRef(null);\n const avatarNodeMergeRef = composeRef(ref, avatarNodeRef);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const setScaleParam = () => {\n if (!avatarChildrenRef.current || !avatarNodeRef.current) {\n return;\n }\n const childrenWidth = avatarChildrenRef.current.offsetWidth; // offsetWidth avoid affecting be transform scale\n const nodeWidth = avatarNodeRef.current.offsetWidth;\n // denominator is 0 is no meaning\n if (childrenWidth !== 0 && nodeWidth !== 0) {\n const {\n gap = 4\n } = props;\n if (gap * 2 < nodeWidth) {\n setScale(nodeWidth - gap * 2 < childrenWidth ? (nodeWidth - gap * 2) / childrenWidth : 1);\n }\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n setIsImgExist(true);\n setScale(1);\n }, [props.src]);\n React.useEffect(() => {\n setScaleParam();\n }, [props.gap]);\n const handleImgLoadError = () => {\n const {\n onError\n } = props;\n const errorFlag = onError ? onError() : undefined;\n if (errorFlag !== false) {\n setIsImgExist(false);\n }\n };\n const {\n prefixCls: customizePrefixCls,\n shape = 'circle',\n size: customSize = 'default',\n src,\n srcSet,\n icon,\n className,\n alt,\n draggable,\n children,\n crossOrigin\n } = props,\n others = __rest(props, [\"prefixCls\", \"shape\", \"size\", \"src\", \"srcSet\", \"icon\", \"className\", \"alt\", \"draggable\", \"children\", \"crossOrigin\"]);\n const size = customSize === 'default' ? groupSize : customSize;\n const needResponsive = Object.keys(typeof size === 'object' ? size || {} : {}).some(key => ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].includes(key));\n const screens = useBreakpoint(needResponsive);\n const responsiveSizeStyle = React.useMemo(() => {\n if (typeof size !== 'object') {\n return {};\n }\n const currentBreakpoint = responsiveArray.find(screen => screens[screen]);\n const currentSize = size[currentBreakpoint];\n return currentSize ? {\n width: currentSize,\n height: currentSize,\n lineHeight: `${currentSize}px`,\n fontSize: icon ? currentSize / 2 : 18\n } : {};\n }, [screens, size]);\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Avatar', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n const prefixCls = getPrefixCls('avatar', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small'\n });\n const hasImageElement = /*#__PURE__*/React.isValidElement(src);\n const classString = classNames(prefixCls, sizeCls, {\n [`${prefixCls}-${shape}`]: !!shape,\n [`${prefixCls}-image`]: hasImageElement || src && isImgExist,\n [`${prefixCls}-icon`]: !!icon\n }, className, hashId);\n const sizeStyle = typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: `${size}px`,\n fontSize: icon ? size / 2 : 18\n } : {};\n let childrenToRender;\n if (typeof src === 'string' && isImgExist) {\n childrenToRender = /*#__PURE__*/React.createElement(\"img\", {\n src: src,\n draggable: draggable,\n srcSet: srcSet,\n onError: handleImgLoadError,\n alt: alt,\n crossOrigin: crossOrigin\n });\n } else if (hasImageElement) {\n childrenToRender = src;\n } else if (icon) {\n childrenToRender = icon;\n } else if (mounted || scale !== 1) {\n const transformString = `scale(${scale}) translateX(-50%)`;\n const childrenStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString\n };\n const sizeChildrenStyle = typeof size === 'number' ? {\n lineHeight: `${size}px`\n } : {};\n childrenToRender = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: setScaleParam\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-string`,\n ref: avatarChildrenRef,\n style: Object.assign(Object.assign({}, sizeChildrenStyle), childrenStyle)\n }, children));\n } else {\n childrenToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-string`,\n style: {\n opacity: 0\n },\n ref: avatarChildrenRef\n }, children);\n }\n // The event is triggered twice from bubbling up the DOM tree.\n // see https://codesandbox.io/s/kind-snow-9lidz\n delete others.onError;\n delete others.gap;\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", Object.assign({}, others, {\n style: Object.assign(Object.assign(Object.assign({}, sizeStyle), responsiveSizeStyle), others.style),\n className: classString,\n ref: avatarNodeMergeRef\n }), childrenToRender));\n};\nconst Avatar = /*#__PURE__*/React.forwardRef(InternalAvatar);\nif (process.env.NODE_ENV !== 'production') {\n Avatar.displayName = 'Avatar';\n}\nexport default Avatar;","export const getRenderPropValue = propValue => {\n if (!propValue) {\n return null;\n }\n if (typeof propValue === 'function') {\n return propValue();\n }\n return propValue;\n};","import { initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken, PresetColors } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nimport getArrowStyle from '../../style/placementArrow';\nconst genBaseStyle = token => {\n const {\n componentCls,\n popoverBg,\n popoverColor,\n width,\n fontWeightStrong,\n popoverPadding,\n boxShadowSecondary,\n colorTextHeading,\n borderRadiusLG: borderRadius,\n zIndexPopup,\n marginXS,\n colorBgElevated\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: 0,\n // use `left` to fix https://github.com/ant-design/ant-design/issues/39195\n left: {\n _skip_check_: true,\n value: 0\n },\n zIndex: zIndexPopup,\n fontWeight: 'normal',\n whiteSpace: 'normal',\n textAlign: 'start',\n cursor: 'auto',\n userSelect: 'text',\n '--antd-arrow-background-color': colorBgElevated,\n '&-rtl': {\n direction: 'rtl'\n },\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n },\n [`${componentCls}-inner`]: {\n backgroundColor: popoverBg,\n backgroundClip: 'padding-box',\n borderRadius,\n boxShadow: boxShadowSecondary,\n padding: popoverPadding\n },\n [`${componentCls}-title`]: {\n minWidth: width,\n marginBottom: marginXS,\n color: colorTextHeading,\n fontWeight: fontWeightStrong\n },\n [`${componentCls}-inner-content`]: {\n color: popoverColor\n }\n })\n },\n // Arrow Style\n getArrowStyle(token, {\n colorBg: 'var(--antd-arrow-background-color)'\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n [`${componentCls}-content`]: {\n display: 'inline-block'\n }\n }\n }];\n};\nconst genColorStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: PresetColors.map(colorKey => {\n const lightColor = token[`${colorKey}-6`];\n return {\n [`&${componentCls}-${colorKey}`]: {\n '--antd-arrow-background-color': lightColor,\n [`${componentCls}-inner`]: {\n backgroundColor: lightColor\n },\n [`${componentCls}-arrow`]: {\n background: 'transparent'\n }\n }\n };\n })\n };\n};\nconst genWireframeStyle = token => {\n const {\n componentCls,\n lineWidth,\n lineType,\n colorSplit,\n paddingSM,\n controlHeight,\n fontSize,\n lineHeight,\n padding\n } = token;\n const titlePaddingBlockDist = controlHeight - Math.round(fontSize * lineHeight);\n const popoverTitlePaddingBlockTop = titlePaddingBlockDist / 2;\n const popoverTitlePaddingBlockBottom = titlePaddingBlockDist / 2 - lineWidth;\n const popoverPaddingHorizontal = padding;\n return {\n [componentCls]: {\n [`${componentCls}-inner`]: {\n padding: 0\n },\n [`${componentCls}-title`]: {\n margin: 0,\n padding: `${popoverTitlePaddingBlockTop}px ${popoverPaddingHorizontal}px ${popoverTitlePaddingBlockBottom}px`,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n [`${componentCls}-inner-content`]: {\n padding: `${paddingSM}px ${popoverPaddingHorizontal}px`\n }\n }\n };\n};\nexport default genComponentStyleHook('Popover', token => {\n const {\n colorBgElevated,\n colorText,\n wireframe\n } = token;\n const popoverToken = mergeToken(token, {\n popoverBg: colorBgElevated,\n popoverColor: colorText,\n popoverPadding: 12 // Fixed Value\n });\n\n return [genBaseStyle(popoverToken), genColorStyle(popoverToken), wireframe && genWireframeStyle(popoverToken), initZoomMotion(popoverToken, 'zoom-big')];\n}, _ref => {\n let {\n zIndexPopupBase\n } = _ref;\n return {\n zIndexPopup: zIndexPopupBase + 30,\n width: 177\n };\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nexport const getOverlay = (prefixCls, title, content) => {\n if (!title && !content) return undefined;\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`\n }, getRenderPropValue(content)));\n};\nexport function RawPurePanel(props) {\n const {\n hashId,\n prefixCls,\n className,\n style,\n placement = 'top',\n title,\n content,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className),\n style: style\n }, /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls\n }), children || getOverlay(prefixCls, title, content)));\n}\nexport default function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls\n } = props,\n restProps = __rest(props, [\"prefixCls\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(RawPurePanel, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n hashId: hashId\n })));\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nimport PurePanel from './PurePanel';\n// CSSINJS\nimport useStyle from './style';\nconst Overlay = _ref => {\n let {\n title,\n content,\n prefixCls\n } = _ref;\n if (!title && !content) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`\n }, getRenderPropValue(content)));\n};\nconst Popover = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n title,\n content,\n overlayClassName,\n placement = 'top',\n trigger = 'hover',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle = {}\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"title\", \"content\", \"overlayClassName\", \"placement\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const rootPrefixCls = getPrefixCls();\n const overlayCls = classNames(overlayClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n placement: placement,\n trigger: trigger,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayStyle: overlayStyle\n }, otherProps, {\n prefixCls: prefixCls,\n overlayClassName: overlayCls,\n ref: ref,\n overlay: /*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: title,\n content: content\n }),\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName),\n \"data-popover-inject\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popover.displayName = 'Popover';\n}\nPopover._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Popover;","import classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Popover from '../popover';\nimport { cloneElement } from '../_util/reactNode';\nimport Avatar from './avatar';\nimport { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nconst Group = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className = '',\n maxCount,\n maxStyle,\n size\n } = props;\n const prefixCls = getPrefixCls('avatar', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(groupPrefixCls, {\n [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n const {\n children,\n maxPopoverPlacement = 'top',\n maxPopoverTrigger = 'hover'\n } = props;\n const childrenWithProps = toArray(children).map((child, index) => cloneElement(child, {\n key: `avatar-key-${index}`\n }));\n const numOfChildren = childrenWithProps.length;\n if (maxCount && maxCount < numOfChildren) {\n const childrenShow = childrenWithProps.slice(0, maxCount);\n const childrenHidden = childrenWithProps.slice(maxCount, numOfChildren);\n childrenShow.push( /*#__PURE__*/React.createElement(Popover, {\n key: \"avatar-popover-key\",\n content: childrenHidden,\n trigger: maxPopoverTrigger,\n placement: maxPopoverPlacement,\n overlayClassName: `${groupPrefixCls}-popover`\n }, /*#__PURE__*/React.createElement(Avatar, {\n style: maxStyle\n }, `+${numOfChildren - maxCount}`)));\n return wrapSSR( /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenShow)));\n }\n return wrapSSR( /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenWithProps)));\n};\nexport default Group;","import InternalAvatar from './avatar';\nimport Group from './group';\nexport { Group };\nconst Avatar = InternalAvatar;\nAvatar.Group = Group;\nexport default Avatar;","import {\r\n LoginOutlined,\r\n MenuFoldOutlined,\r\n MenuUnfoldOutlined,\r\n ProfileFilled,\r\n} from \"@ant-design/icons\";\r\nimport { Avatar, Dropdown, Layout, Menu, theme } from \"antd\";\r\nimport React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { signOutAction } from \"../app/authSlice\";\r\nimport { useAppSelector } from \"../app/hooks\";\r\nimport { ISider } from \"./propsState\";\r\nimport \"./styles.scss\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nconst { Header } = Layout;\r\n\r\n// router menu\r\nconst HeaderComponent = (props: ISider) => {\r\n const dispatch = useDispatch();\r\n const _logout = () => {\r\n dispatch(signOutAction() as any);\r\n };\r\n const { userInfo } = useAppSelector((state) => state.auth);\r\n\r\n const menu = (\r\n \r\n }>\r\n \r\n Trang cá nhân\r\n \r\n \r\n }\r\n onClick={_logout}\r\n >\r\n Đăng Xuất\r\n \r\n \r\n );\r\n\r\n const {\r\n token: { colorBgContainer },\r\n } = theme.useToken();\r\n return (\r\n \r\n
\r\n {React.createElement(\r\n props.collapsed ? MenuUnfoldOutlined : MenuFoldOutlined,\r\n {\r\n className: \"trigger text-xl\",\r\n style: { color: \"#ff4b2b\" },\r\n onClick: () => props.changeCollapsed(true),\r\n }\r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n {userInfo.firstName\r\n ? userInfo.firstName.charAt(0).toUpperCase()\r\n : \"\"}\r\n \r\n \r\n {userInfo.lastName}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(HeaderComponent);\r\n","// This icon file is generated automatically.\nvar DashboardOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 01140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 00-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 000 79.2 55.95 55.95 0 0079.2 0 55.87 55.87 0 0014.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 00-11.3 0l-56.6 56.6a8.03 8.03 0 000 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 00-11.3 0l-31.1 31.1a8.03 8.03 0 000 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"dashboard\", \"theme\": \"outlined\" };\nexport default DashboardOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DashboardOutlinedSvg from \"@ant-design/icons-svg/es/asn/DashboardOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DashboardOutlined = function DashboardOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DashboardOutlinedSvg\n }));\n};\nDashboardOutlined.displayName = 'DashboardOutlined';\nexport default /*#__PURE__*/React.forwardRef(DashboardOutlined);","// This icon file is generated automatically.\nvar BookOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z\" } }] }, \"name\": \"book\", \"theme\": \"outlined\" };\nexport default BookOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport BookOutlinedSvg from \"@ant-design/icons-svg/es/asn/BookOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar BookOutlined = function BookOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: BookOutlinedSvg\n }));\n};\nBookOutlined.displayName = 'BookOutlined';\nexport default /*#__PURE__*/React.forwardRef(BookOutlined);","// This icon file is generated automatically.\nvar ShoppingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z\" } }] }, \"name\": \"shopping\", \"theme\": \"outlined\" };\nexport default ShoppingOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ShoppingOutlinedSvg from \"@ant-design/icons-svg/es/asn/ShoppingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ShoppingOutlined = function ShoppingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ShoppingOutlinedSvg\n }));\n};\nShoppingOutlined.displayName = 'ShoppingOutlined';\nexport default /*#__PURE__*/React.forwardRef(ShoppingOutlined);","// This icon file is generated automatically.\nvar ApartmentOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z\" } }] }, \"name\": \"apartment\", \"theme\": \"outlined\" };\nexport default ApartmentOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ApartmentOutlinedSvg from \"@ant-design/icons-svg/es/asn/ApartmentOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ApartmentOutlined = function ApartmentOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ApartmentOutlinedSvg\n }));\n};\nApartmentOutlined.displayName = 'ApartmentOutlined';\nexport default /*#__PURE__*/React.forwardRef(ApartmentOutlined);","// This icon file is generated automatically.\nvar DesktopOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z\" } }] }, \"name\": \"desktop\", \"theme\": \"outlined\" };\nexport default DesktopOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DesktopOutlinedSvg from \"@ant-design/icons-svg/es/asn/DesktopOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DesktopOutlined = function DesktopOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DesktopOutlinedSvg\n }));\n};\nDesktopOutlined.displayName = 'DesktopOutlined';\nexport default /*#__PURE__*/React.forwardRef(DesktopOutlined);","// This icon file is generated automatically.\nvar PhoneOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 01-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 00-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 00285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z\" } }] }, \"name\": \"phone\", \"theme\": \"outlined\" };\nexport default PhoneOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PhoneOutlinedSvg from \"@ant-design/icons-svg/es/asn/PhoneOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PhoneOutlined = function PhoneOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PhoneOutlinedSvg\n }));\n};\nPhoneOutlined.displayName = 'PhoneOutlined';\nexport default /*#__PURE__*/React.forwardRef(PhoneOutlined);","// This icon file is generated automatically.\nvar MessageOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z\" } }] }, \"name\": \"message\", \"theme\": \"outlined\" };\nexport default MessageOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MessageOutlinedSvg from \"@ant-design/icons-svg/es/asn/MessageOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar MessageOutlined = function MessageOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MessageOutlinedSvg\n }));\n};\nMessageOutlined.displayName = 'MessageOutlined';\nexport default /*#__PURE__*/React.forwardRef(MessageOutlined);","// This icon file is generated automatically.\nvar SafetyCertificateOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z\" } }] }, \"name\": \"safety-certificate\", \"theme\": \"outlined\" };\nexport default SafetyCertificateOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SafetyCertificateOutlinedSvg from \"@ant-design/icons-svg/es/asn/SafetyCertificateOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SafetyCertificateOutlined = function SafetyCertificateOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SafetyCertificateOutlinedSvg\n }));\n};\nSafetyCertificateOutlined.displayName = 'SafetyCertificateOutlined';\nexport default /*#__PURE__*/React.forwardRef(SafetyCertificateOutlined);","// This icon file is generated automatically.\nvar ContactsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M594.3 601.5a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1 8 8 0 008 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52zm416-354H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z\" } }] }, \"name\": \"contacts\", \"theme\": \"outlined\" };\nexport default ContactsOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ContactsOutlinedSvg from \"@ant-design/icons-svg/es/asn/ContactsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ContactsOutlined = function ContactsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ContactsOutlinedSvg\n }));\n};\nContactsOutlined.displayName = 'ContactsOutlined';\nexport default /*#__PURE__*/React.forwardRef(ContactsOutlined);","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","// This icon file is generated automatically.\nvar EnvironmentOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 289.1a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z\" } }] }, \"name\": \"environment\", \"theme\": \"outlined\" };\nexport default EnvironmentOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EnvironmentOutlinedSvg from \"@ant-design/icons-svg/es/asn/EnvironmentOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EnvironmentOutlined = function EnvironmentOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EnvironmentOutlinedSvg\n }));\n};\nEnvironmentOutlined.displayName = 'EnvironmentOutlined';\nexport default /*#__PURE__*/React.forwardRef(EnvironmentOutlined);","// This icon file is generated automatically.\nvar TranslationOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M140 188h584v164h76V144c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h544v-76H140V188z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M414.3 256h-60.6c-3.4 0-6.4 2.2-7.6 5.4L219 629.4c-.3.8-.4 1.7-.4 2.6 0 4.4 3.6 8 8 8h55.1c3.4 0 6.4-2.2 7.6-5.4L322 540h196.2L422 261.4a8.42 8.42 0 00-7.7-5.4zm12.4 228h-85.5L384 360.2 426.7 484zM936 528H800v-93c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v93H592c-13.3 0-24 10.7-24 24v176c0 13.3 10.7 24 24 24h136v152c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V752h136c13.3 0 24-10.7 24-24V552c0-13.3-10.7-24-24-24zM728 680h-88v-80h88v80zm160 0h-88v-80h88v80z\" } }] }, \"name\": \"translation\", \"theme\": \"outlined\" };\nexport default TranslationOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport TranslationOutlinedSvg from \"@ant-design/icons-svg/es/asn/TranslationOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar TranslationOutlined = function TranslationOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: TranslationOutlinedSvg\n }));\n};\nTranslationOutlined.displayName = 'TranslationOutlined';\nexport default /*#__PURE__*/React.forwardRef(TranslationOutlined);","// This icon file is generated automatically.\nvar TeamOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M824.2 699.9a301.55 301.55 0 00-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 01612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 008-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 01612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z\" } }] }, \"name\": \"team\", \"theme\": \"outlined\" };\nexport default TeamOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport TeamOutlinedSvg from \"@ant-design/icons-svg/es/asn/TeamOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar TeamOutlined = function TeamOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: TeamOutlinedSvg\n }));\n};\nTeamOutlined.displayName = 'TeamOutlined';\nexport default /*#__PURE__*/React.forwardRef(TeamOutlined);","// This icon file is generated automatically.\nvar ProfileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM492 400h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM340 368a40 40 0 1080 0 40 40 0 10-80 0zm0 144a40 40 0 1080 0 40 40 0 10-80 0zm0 144a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"profile\", \"theme\": \"outlined\" };\nexport default ProfileOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ProfileOutlinedSvg from \"@ant-design/icons-svg/es/asn/ProfileOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ProfileOutlined = function ProfileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ProfileOutlinedSvg\n }));\n};\nProfileOutlined.displayName = 'ProfileOutlined';\nexport default /*#__PURE__*/React.forwardRef(ProfileOutlined);","// This icon file is generated automatically.\nvar SecurityScanOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM402.9 528.8l-77.5 77.5a8.03 8.03 0 000 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.7 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 123-20.1 178.6zm65.4-133.3c31.3-31.3 82-31.3 113.2 0 31.3 31.3 31.3 82 0 113.2-31.3 31.3-82 31.3-113.2 0s-31.3-81.9 0-113.2z\" } }] }, \"name\": \"security-scan\", \"theme\": \"outlined\" };\nexport default SecurityScanOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SecurityScanOutlinedSvg from \"@ant-design/icons-svg/es/asn/SecurityScanOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SecurityScanOutlined = function SecurityScanOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SecurityScanOutlinedSvg\n }));\n};\nSecurityScanOutlined.displayName = 'SecurityScanOutlined';\nexport default /*#__PURE__*/React.forwardRef(SecurityScanOutlined);","// This icon file is generated automatically.\nvar UserSwitchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-.4.2-.7.3-.9.4-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00136 874.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zm105 221h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1a8.1 8.1 0 001.7-4.9c0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8.1 17.7 14.4 32 32.1 32zm240 64H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1a8.1 8.1 0 00-1.7 4.9c0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-.1-17.7-14.4-32-32.1-32z\" } }] }, \"name\": \"user-switch\", \"theme\": \"outlined\" };\nexport default UserSwitchOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport UserSwitchOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserSwitchOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar UserSwitchOutlined = function UserSwitchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: UserSwitchOutlinedSvg\n }));\n};\nUserSwitchOutlined.displayName = 'UserSwitchOutlined';\nexport default /*#__PURE__*/React.forwardRef(UserSwitchOutlined);","// This icon file is generated automatically.\nvar GoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128zm2.5 282.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z\" } }] }, \"name\": \"gold\", \"theme\": \"outlined\" };\nexport default GoldOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport GoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/GoldOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar GoldOutlined = function GoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: GoldOutlinedSvg\n }));\n};\nGoldOutlined.displayName = 'GoldOutlined';\nexport default /*#__PURE__*/React.forwardRef(GoldOutlined);","// This icon file is generated automatically.\nvar ProjectOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8zm216-432H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"project\", \"theme\": \"outlined\" };\nexport default ProjectOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ProjectOutlinedSvg from \"@ant-design/icons-svg/es/asn/ProjectOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ProjectOutlined = function ProjectOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ProjectOutlinedSvg\n }));\n};\nProjectOutlined.displayName = 'ProjectOutlined';\nexport default /*#__PURE__*/React.forwardRef(ProjectOutlined);","import { useEffect } from 'react';\nvar useEffectOnce = function (effect) {\n useEffect(effect, []);\n};\nexport default useEffectOnce;\n","import configServices from \"../../../utils/configServices\";\r\nimport { ILanguage, ISearchLanguage, ILanguageAction } from \"../language.model\";\r\n\r\nexport const createLanguage = async (body: ILanguageAction) => {\r\n const result = await configServices.postService(\"language\", {\r\n ...body,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteLanguage = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `language/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateLanguage = async (id: number, param: ILanguageAction) => {\r\n const result = await configServices.patchService(\r\n `language/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getLanguage = async (id: number) => {\r\n const result = await configServices.getService(\r\n `language/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\nfunction compare(a: any, b: any) {\r\n if (a.isDefault > b.isDefault) {\r\n return -1;\r\n }\r\n if (a.isDefault < b.isDefault) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\nexport const getLanguages = async (filter?: ISearchLanguage) => {\r\n const result = await configServices.getService(\r\n `language`,\r\n filter,\r\n null,\r\n true\r\n );\r\n if(result && result?.data) {\r\n let data: ILanguage[] = result.data;\r\n data = data.sort((a, b) => compare(a, b));\r\n localStorage.setItem(\"language\", JSON.stringify(data));\r\n }\r\n return result;\r\n};\r\n","export enum MODULE_ENUM {\r\n POST = 'post',\r\n BANNER = 'banner',\r\n CATEGORY = 'category',\r\n // PRODUCT = 'product',\r\n RECRUIMENT = 'recruiment',\r\n PARTNER = 'partner',\r\n CERTIFICATE = 'certificate',\r\n CONTACT = 'contact',\r\n INFOR_CONTACT = 'inforContact',\r\n LANGUAGE = 'language',\r\n USER = 'user',\r\n ROLE = 'role',\r\n}\r\n\r\nexport const LABLE_MODULE_ENUM: any = {\r\n 'post' : 'Bài viết',\r\n 'banner' : 'Trình chiếu',\r\n 'category' : 'Danh mục',\r\n 'recruiment' : 'Tuyển dụng',\r\n 'partner' : 'Đối tác',\r\n 'certificate' : 'Chứng chỉ',\r\n 'contact' : 'Thông tin',\r\n 'inforContact' : 'Địa chỉ',\r\n 'language' : 'Ngôn ngữ',\r\n 'user' : 'Người dùng',\r\n 'role' : 'Phân quyền',\r\n}\r\nexport const ModulePermisson = Object.keys(LABLE_MODULE_ENUM);\r\n\r\nexport enum PERMISSION_ENUM {\r\n POST_LIST=`post.list`,\r\n POST_CREATE=`post.create`,\r\n POST_UPDATE=`post.update`,\r\n POST_DELETE=`post.delete`,\r\n POST_ISPUBLISH=`post.isPublish`,\r\n \r\n PARTNER_LIST=`partner.list`,\r\n PARTNER_CREATE=`partner.create`,\r\n PARTNER_UPDATE=`partner.update`,\r\n PARTNER_DELETE=`partner.delete`,\r\n PARTNER_ISPUBLISH=`partner.isPublish`,\r\n \r\n USER_LIST=`user.list`,\r\n USER_CREATE=`user.create`,\r\n USER_UPDATE=`user.update`,\r\n USER_DELETE=`user.delete`,\r\n USER_ISPUBLISH=`user.isPublish`,\r\n \r\n LANGUAGE_LIST=`language.list`,\r\n LANGUAGE_CREATE=`language.create`,\r\n LANGUAGE_UPDATE=`language.update`,\r\n LANGUAGE_DELETE=`language.delete`,\r\n \r\n INFOR_CONTACT_LIST=`inforContact.list`,\r\n INFOR_CONTACT_CREATE=`inforContact.create`,\r\n INFOR_CONTACT_UPDATE=`inforContact.update`,\r\n INFOR_CONTACT_DELETE=`inforContact.delete`,\r\n \r\n CONTACT_LIST=`contact.list`,\r\n CONTACT_CREATE=`contact.create`,\r\n CONTACT_UPDATE=`contact.update`,\r\n CONTACT_DELETE=`contact.delete`,\r\n \r\n CERTIFICATE_CREATE=`certificate.create`,\r\n CERTIFICATE_UPDATE=`certificate.update`,\r\n CERTIFICATE_DELETE=`certificate.delete`,\r\n CERTIFICATE_LIST=`certificate.list`,\r\n \r\n BANNER_LIST=`banner.list`,\r\n BANNER_CREATE=`banner.create`,\r\n BANNER_UPDATE=`banner.update`,\r\n BANNER_DELETE=`banner.delete`,\r\n \r\n CATEGORY_LIST=`category.list`,\r\n CATEGORY_CREATE=`category.create`,\r\n CATEGORY_UPDATE=`category.update`,\r\n CATEGORY_DELETE=`category.delete`,\r\n \r\n ROLE_LIST=`role.list`,\r\n ROLE_CREATE=`role.create`,\r\n ROLE_UPDATE=`role.update`,\r\n ROLE_DELETE=`role.delete`,\r\n \r\n RECRUIMENT_LIST=`recruiment.list`,\r\n RECRUIMENT_CREATE=`recruiment.create`,\r\n RECRUIMENT_UPDATE=`recruiment.update`,\r\n RECRUIMENT_DELETE=`recruiment.delete`,\r\n}","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { ILanguageState } from \"./propState\";\r\nimport {\r\n createLanguage,\r\n deleteLanguage,\r\n updateLanguage,\r\n getLanguages,\r\n getLanguage,\r\n} from \"./services\";\r\nimport { ILanguage, ISearchLanguage } from \"./language.model\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: ILanguageState = {\r\n data: [],\r\n currentPage: 1,\r\n detail: {\r\n id: 1,\r\n code: \"\",\r\n name: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getLanguagesAction = createAsyncThunk(\r\n \"languages\",\r\n async (filter: ISearchLanguage, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getLanguages(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getLanguageDetail = createAsyncThunk(\r\n \"language/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getLanguage(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createLanguageAction = createAsyncThunk(\r\n \"language/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const body = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createLanguage(body);\r\n } else {\r\n await updateLanguage(payload.id, body);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteLanguageAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteLanguage(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getLanguagesAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const languageSlice = createSlice({\r\n name: \"language\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: ILanguageState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: ILanguageState,\r\n action: PayloadAction\r\n ) => {\r\n const payload: any = action.payload;\r\n delete payload['password']\r\n state.detail = payload;\r\n },\r\n setStatusModalAction: (\r\n state: ILanguageState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: ILanguage | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setPostAction, setStatusModalAction, setDetailAction } =\r\nlanguageSlice.actions;\r\n\r\nexport default languageSlice.reducer;\r\n","import configServices from \"../../../utils/configServices\";\r\nimport { IUser, ISearchUser, IRoleGroupResponseModel, IPermissionGroupResponseModel } from \"../user.model\";\r\n\r\nexport const createUser = async (body: IUser) => {\r\n const result = await configServices.postService(\"user\", {\r\n ...body,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteUser = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `user/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateUser = async (id: number, param: any) => {\r\n const result = await configServices.patchService(\r\n `user/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getUser = async (id: number) => {\r\n const result = await configServices.getService(\r\n `user/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getUsers = async (filter?: ISearchUser) => {\r\n const result = await configServices.getService(\r\n `user`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\nexport const getRole = async () => {\r\n const result = await configServices.getService(\r\n `user/role`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getRoleGroup = async () => {\r\n const result = await configServices.getService(\r\n `user/group`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\n// import { RootState } from \"../../app/store\";\r\nimport { defaultFilter } from \"../../utils\";\r\nimport { IUserState } from \"./propState\";\r\nimport {\r\n createUser,\r\n deleteUser,\r\n getRole,\r\n getRoleGroup,\r\n getUser,\r\n getUsers,\r\n updateUser,\r\n} from \"./services\";\r\nimport {\r\n IRoleGroupModel,\r\n IRoleModuleModel,\r\n ISearchUser,\r\n IUser\r\n} from \"./user.model\";\r\n\r\nconst initialState: IUserState = {\r\n data: [],\r\n currentPage: 1,\r\n permission: [],\r\n permissionObj: {},\r\n detail: {\r\n id: 1,\r\n name: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getUsersAction = createAsyncThunk(\r\n \"users\",\r\n async (filter: ISearchUser, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const state = thunkAPI.getState() as RootState;\r\n const response: any = await getUsers(defaultFilter({ ...filter }));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getUserRoleAction = createAsyncThunk(\r\n \"users/role\",\r\n async (payload: any, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const response = await getRole();\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setUserPermissionAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getUserDetail = createAsyncThunk(\r\n \"user/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const statek = thunkAPI.getState() as RootState;\r\n const response: any = await getUser(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createUserAction = createAsyncThunk(\r\n \"user/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const banner = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createUser(banner);\r\n } else {\r\n await updateUser(payload.id, banner);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteUserAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteUser(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getUsersAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\nexport const getRoleGroupAction = createAsyncThunk(\r\n \"user/group\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n const response = await getRoleGroup();\r\n dispatch(seRoleGroupAction(response.data));\r\n dispatch(setLoadingAction(false));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (state: IUserState, action: PayloadAction) => {\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (state: IUserState, action: PayloadAction) => {\r\n const payload: any = action.payload;\r\n delete payload[\"password\"];\r\n state.detail = payload;\r\n },\r\n setStatusModalAction: (\r\n state: IUserState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: IUser | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n setUserPermissionAction: (\r\n state: IUserState,\r\n action: PayloadAction\r\n ) => {\r\n state.permission = action.payload;\r\n const permissionObj: any = {};\r\n action.payload.forEach((item) => {\r\n const permission: any = item?.permission;\r\n if (permission) {\r\n for (const key in permission) {\r\n const keyPer = `${item.module}.${key}`;\r\n permissionObj[keyPer] = permission[key];\r\n }\r\n }\r\n });\r\n state.permissionObj = permissionObj;\r\n },\r\n seRoleGroupAction: (\r\n state: IUserState,\r\n action: PayloadAction\r\n ) => {\r\n state.roleGroup = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n setPostAction,\r\n setStatusModalAction,\r\n setDetailAction,\r\n setUserPermissionAction,\r\n seRoleGroupAction,\r\n} = userSlice.actions;\r\n\r\nexport default userSlice.reducer;\r\n","import * as antIc from \"@ant-design/icons\";\r\nimport type { MenuProps } from \"antd\";\r\nimport { Layout, Menu } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { useAppSelector } from \"../app/hooks\";\r\nimport LogoVietTel from \"../assets/img/logo/logo_viettel_manufacturing.png\";\r\nimport { getLanguagesAction } from \"../screens/language/slice\";\r\nimport { IUserState } from \"../screens/user/propState\";\r\nimport { getUserRoleAction } from \"../screens/user/slice\";\r\nimport { isCheckPermisson } from \"../utils\";\r\nimport { PERMISSION_ENUM } from \"../utils/permisson.enum\";\r\nimport { ISider } from \"./propsState\";\r\nimport \"./styles.scss\";\r\n\r\nconst { Sider } = Layout;\r\nconst { SubMenu } = Menu;\r\ntype MenuItem = Required[\"items\"][number];\r\n// router menu\r\nconst SiderBarComponent = (props: ISider) => {\r\n const dispatch = useDispatch();\r\n const [defaultOpenKeys] = useState([props.location.pathname || \"/post\"]);\r\n const [selectedkey, setSelectedKey] = useState([\r\n props.location.pathname || \"/post\",\r\n ]);\r\n\r\n const getRole = async () => {\r\n await dispatch(getUserRoleAction({}) as any);\r\n const language = localStorage.getItem(\"language\");\r\n if (!language) {\r\n dispatch(getLanguagesAction({}) as any);\r\n }\r\n };\r\n useEffectOnce(() => {\r\n getRole();\r\n });\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n\r\n useEffect(() => {\r\n // let sKey = props.location.pathname;\r\n // let dOkey = \"\";\r\n // const sGroup = _.findLast(\r\n // subs,\r\n // (sub) => sub.pathname === props.location.pathname\r\n // );\r\n // if (sGroup) {\r\n // sKey = sGroup.key;\r\n // dOkey = sGroup.sub;\r\n // }\r\n // setDefaultOpenKeys(dOkey);\r\n // setSelectedKey(sKey);\r\n }, [props.location.pathname]);\r\n\r\n const onClick: MenuProps[\"onClick\"] = (e) => {\r\n setSelectedKey([e.key]);\r\n };\r\n\r\n type MenuItem = Required[\"items\"][number];\r\n function getItem(\r\n label: React.ReactNode,\r\n key: React.Key,\r\n icon?: React.ReactNode,\r\n permission?: PERMISSION_ENUM | PERMISSION_ENUM[],\r\n children?: MenuItem[],\r\n type?: \"group\",\r\n ): MenuItem {\r\n return isCheckPermisson(permissionObj, permission)\r\n ? ({\r\n key,\r\n icon,\r\n children,\r\n label,\r\n type,\r\n } as MenuItem)\r\n : null;\r\n }\r\n const items: MenuItem[] = [\r\n getItem(\r\n \r\n Trang chủ\r\n ,\r\n \"dashboard\",\r\n \r\n ),\r\n getItem(\r\n \r\n Bài viết\r\n ,\r\n \"post\",\r\n ,\r\n [PERMISSION_ENUM.POST_CREATE, PERMISSION_ENUM.POST_LIST],\r\n ),\r\n getItem(\r\n \r\n Sản phẩm\r\n ,\r\n \"product\",\r\n ,\r\n [PERMISSION_ENUM.POST_CREATE, PERMISSION_ENUM.POST_LIST],\r\n ),\r\n getItem(\r\n \r\n Danh mục\r\n ,\r\n \"category\",\r\n ,\r\n [PERMISSION_ENUM.CATEGORY_CREATE, PERMISSION_ENUM.CATEGORY_LIST],\r\n ),\r\n getItem(\r\n \r\n Trình chiếu\r\n ,\r\n \"banner\",\r\n ,\r\n [PERMISSION_ENUM.BANNER_CREATE, PERMISSION_ENUM.BANNER_LIST],\r\n ),\r\n\r\n getItem(\r\n \r\n Tuyển dụng\r\n ,\r\n \"recruiment\",\r\n ,\r\n [PERMISSION_ENUM.RECRUIMENT_CREATE, PERMISSION_ENUM.RECRUIMENT_LIST],\r\n ),\r\n getItem(\r\n \r\n Đối tác\r\n ,\r\n \"partner\",\r\n ,\r\n [PERMISSION_ENUM.PARTNER_CREATE, PERMISSION_ENUM.PARTNER_LIST],\r\n ),\r\n getItem(\r\n \r\n Chứng chỉ\r\n ,\r\n \"certificate\",\r\n ,\r\n [PERMISSION_ENUM.CERTIFICATE_CREATE, PERMISSION_ENUM.CERTIFICATE_LIST],\r\n ),\r\n getItem(\r\n \"Liên hệ\",\r\n \"contact\",\r\n ,\r\n [PERMISSION_ENUM.CONTACT_CREATE, PERMISSION_ENUM.CONTACT_LIST, PERMISSION_ENUM.INFOR_CONTACT_CREATE, PERMISSION_ENUM.INFOR_CONTACT_LIST],\r\n [\r\n getItem(\r\n \r\n Thông tin\r\n ,\r\n \"contact\",\r\n ,\r\n [PERMISSION_ENUM.CONTACT_CREATE, PERMISSION_ENUM.CONTACT_LIST],\r\n ),\r\n getItem(\r\n \r\n Địa chỉ\r\n ,\r\n \"inforContact\",\r\n ,\r\n [PERMISSION_ENUM.INFOR_CONTACT_CREATE, PERMISSION_ENUM.INFOR_CONTACT_LIST],\r\n ),\r\n ]\r\n ),\r\n\r\n getItem(\r\n \r\n Ngôn ngữ\r\n ,\r\n \"language\",\r\n ,\r\n [PERMISSION_ENUM.LANGUAGE_CREATE, PERMISSION_ENUM.LANGUAGE_LIST],\r\n ),\r\n getItem(\r\n \"Người dùng\",\r\n \"user\",\r\n ,\r\n [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n [\r\n getItem(\r\n \r\n Danh sách\r\n ,\r\n \"userList\",\r\n ,\r\n [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n ),\r\n getItem(\r\n \r\n Phân quyền\r\n ,\r\n \"role\",\r\n ,\r\n [PERMISSION_ENUM.ROLE_CREATE, PERMISSION_ENUM.ROLE_LIST],\r\n )\r\n ]\r\n ),\r\n getItem(\r\n \"CRM\",\r\n \"crm\",\r\n ,\r\n [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n [\r\n getItem(\r\n \r\n Quản lý thông tin khách hàng\r\n ,\r\n \"customerManagement\",\r\n ,\r\n // [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n ),\r\n getItem(\r\n \r\n Chăm sóc khách hàng\r\n ,\r\n \"customerCare\",\r\n ,\r\n // [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n ),\r\n getItem(\r\n \r\n Marketing\r\n ,\r\n \"marketing\",\r\n ,\r\n // [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n ),\r\n getItem(\r\n \r\n Quản lý công việc\r\n ,\r\n \"taskManagement\",\r\n ,\r\n // [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n ),\r\n getItem(\r\n \r\n Báo cáo\r\n ,\r\n \"report\",\r\n ,\r\n // [PERMISSION_ENUM.USER_CREATE, PERMISSION_ENUM.USER_LIST],\r\n )\r\n ]\r\n )\r\n ];\r\n\r\n return (\r\n \r\n
\r\n \r\n {/* */}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(SiderBarComponent);\r\n","import { Layout } from \"antd\";\r\nimport React, { useState } from \"react\";\r\nimport FooterComponent from \"./Footer\";\r\nimport HeaderComponent from \"./Header\";\r\nimport SiderBarComponent from \"./Sider\";\r\nimport \"./styles.scss\";\r\ninterface IProps {\r\n children: any;\r\n}\r\n\r\nconst { Content } = Layout;\r\n\r\nconst LayoutComponent = (props: IProps) => {\r\n const [state, setState] = useState({\r\n collapsed: false,\r\n });\r\n const toggle = () => {\r\n setState({\r\n ...state,\r\n collapsed: !state.collapsed,\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n {/* */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LayoutComponent;\r\n","\r\nconst LoadingDefaultComponent = () => (\r\n
Đang tải.....
\r\n);\r\n\r\nexport default LoadingDefaultComponent;\r\n","import Loadable from \"react-loadable\";\r\nimport LoadingDefaultComponent from \"../../app/components/loadingPage\";\r\nexport default Loadable({\r\n loader: () => import(\"./component\"),\r\n loading: LoadingDefaultComponent,\r\n});\r\n","import './styles.scss';\r\n\r\nfunction NotFoundComponent() {\r\n return (\r\n <>\r\n
\r\n

404

\r\n
\r\n

\r\n Trang bạn yêu cầu không tìm thấy.\r\n

\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default NotFoundComponent;\r\n","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","import useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nfunction isThenable(thing) {\n return !!(thing && thing.then);\n}\nconst ActionButton = props => {\n const {\n type,\n children,\n prefixCls,\n buttonProps,\n close,\n autoFocus,\n emitEvent,\n quitOnNullishReturnValue,\n actionFn\n } = props;\n const clickedRef = React.useRef(false);\n const buttonRef = React.useRef(null);\n const [loading, setLoading] = useState(false);\n const onInternalClose = function () {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n };\n React.useEffect(() => {\n let timeoutId = null;\n if (autoFocus) {\n timeoutId = setTimeout(() => {\n var _a;\n (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n });\n }\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n const handlePromiseOnOk = returnValueOfOnOk => {\n if (!isThenable(returnValueOfOnOk)) {\n return;\n }\n setLoading(true);\n returnValueOfOnOk.then(function () {\n setLoading(false, true);\n onInternalClose.apply(void 0, arguments);\n clickedRef.current = false;\n }, e => {\n // See: https://github.com/ant-design/ant-design/issues/6183\n setLoading(false, true);\n clickedRef.current = false;\n return Promise.reject(e);\n });\n };\n const onClick = e => {\n if (clickedRef.current) {\n return;\n }\n clickedRef.current = true;\n if (!actionFn) {\n onInternalClose();\n return;\n }\n let returnValueOfOnOk;\n if (emitEvent) {\n returnValueOfOnOk = actionFn(e);\n if (quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) {\n clickedRef.current = false;\n onInternalClose(e);\n return;\n }\n } else if (actionFn.length) {\n returnValueOfOnOk = actionFn(close);\n // https://github.com/ant-design/ant-design/issues/23358\n clickedRef.current = false;\n } else {\n returnValueOfOnOk = actionFn();\n if (!returnValueOfOnOk) {\n onInternalClose();\n return;\n }\n }\n handlePromiseOnOk(returnValueOfOnOk);\n };\n return /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: buttonRef\n }), children);\n};\nexport default ActionButton;","/* eslint-disable no-param-reassign */\n\nvar cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n outerStyle.position = 'absolute';\n outerStyle.top = '0';\n outerStyle.left = '0';\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n return cached;\n}\nfunction ensureSize(str) {\n var match = str.match(/^(.*)px$/);\n var value = Number(match === null || match === void 0 ? void 0 : match[1]);\n return Number.isNaN(value) ? getScrollBarSize() : value;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n var _getComputedStyle = getComputedStyle(target, '::-webkit-scrollbar'),\n width = _getComputedStyle.width,\n height = _getComputedStyle.height;\n return {\n width: ensureSize(width),\n height: ensureSize(height)\n };\n}","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\n\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n\n var defaultEle = document.createElement('div');\n\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0]; // ========================== Order ==========================\n\n\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n }); // =========================== DOM ===========================\n\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n\n appendedRef.current = true;\n }\n\n function cleanup() {\n var _ele$parentElement;\n\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getScrollBarSize();\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\n\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n\n if (!canUseDom() || !getContainer) {\n return null;\n }\n\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n\n return getContainer;\n};\n\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n\n var mergedRender = shouldRender || open; // ====================== Should Render ======================\n\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]); // ======================== Container ========================\n\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer); // Tell component that we check this in effect which is safe to be `null`\n\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer; // ========================= Locker ==========================\n\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body)); // =========================== Ref ===========================\n\n var childRef = null;\n\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n\n var mergedRef = useComposeRef(childRef, ref); // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n } // Render inline\n\n\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\n\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n var useOriginId = getUseId();\n var reactNativeId = useOriginId === null || useOriginId === void 0 ? void 0 : useOriginId();\n React.useEffect(function () {\n if (!useOriginId) {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return reactNativeId || innerId;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary 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\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart 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\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\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 */\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\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 = _objectSpread({}, ariaOnly);\n }\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if (\n // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n // Data\n mergedConfig.data && match(key, dataPrefix) ||\n // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n visible = props.visible,\n maskProps = props.maskProps,\n motionName = props.motionName;\n return /*#__PURE__*/React.createElement(CSSMotion, {\n key: \"mask\",\n visible: visible,\n motionName: motionName,\n leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: _objectSpread(_objectSpread({}, motionStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName)\n }, maskProps));\n });\n}","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n var motionName = transitionName;\n if (!motionName && animationName) {\n motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n }\n return motionName;\n}\n// =============================== Offset ===============================\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 ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n return ret;\n}\nexport function offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}","import * as React from 'react';\nexport default /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, _ref2) {\n var shouldUpdate = _ref2.shouldUpdate;\n return !shouldUpdate;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport MemoChildren from './MemoChildren';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none'\n};\nvar Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n title = props.title,\n ariaId = props.ariaId,\n footer = props.footer,\n closable = props.closable,\n closeIcon = props.closeIcon,\n onClose = props.onClose,\n children = props.children,\n bodyStyle = props.bodyStyle,\n bodyProps = props.bodyProps,\n modalRender = props.modalRender,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n holderRef = props.holderRef,\n visible = props.visible,\n forceRender = props.forceRender,\n width = props.width,\n height = props.height;\n // ================================= Refs =================================\n var sentinelStartRef = useRef();\n var sentinelEndRef = useRef();\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus();\n },\n changeActive: function changeActive(next) {\n var _document = document,\n activeElement = _document.activeElement;\n if (next && activeElement === sentinelEndRef.current) {\n sentinelStartRef.current.focus();\n } else if (!next && activeElement === sentinelStartRef.current) {\n sentinelEndRef.current.focus();\n }\n }\n };\n });\n // ================================ Style =================================\n var contentStyle = {};\n if (width !== undefined) {\n contentStyle.width = width;\n }\n if (height !== undefined) {\n contentStyle.height = height;\n }\n // ================================ Render ================================\n var footerNode;\n if (footer) {\n footerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer);\n }\n var headerNode;\n if (title) {\n headerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\"),\n id: ariaId\n }, title));\n }\n var closer;\n if (closable) {\n closer = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }));\n }\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, closer, headerNode, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, bodyProps), children), footerNode);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"dialog-element\",\n role: \"dialog\",\n \"aria-labelledby\": title ? ariaId : null,\n \"aria-modal\": \"true\",\n ref: holderRef,\n style: _objectSpread(_objectSpread({}, style), contentStyle),\n className: classNames(prefixCls, className),\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }), /*#__PURE__*/React.createElement(MemoChildren, {\n shouldUpdate: visible || forceRender\n }, modalRender ? modalRender(content) : content), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Panel.displayName = 'Panel';\n}\nexport default Panel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from '../../util';\nimport Panel from './Panel';\nvar Content = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n title = props.title,\n style = props.style,\n className = props.className,\n visible = props.visible,\n forceRender = props.forceRender,\n destroyOnClose = props.destroyOnClose,\n motionName = props.motionName,\n ariaId = props.ariaId,\n onVisibleChanged = props.onVisibleChanged,\n mousePosition = props.mousePosition;\n var dialogRef = useRef();\n // ============================= Style ==============================\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n transformOrigin = _React$useState2[0],\n setTransformOrigin = _React$useState2[1];\n var contentStyle = {};\n if (transformOrigin) {\n contentStyle.transformOrigin = transformOrigin;\n }\n function onPrepare() {\n var elementOffset = offset(dialogRef.current);\n setTransformOrigin(mousePosition ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n }\n // ============================= Render =============================\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n onVisibleChanged: onVisibleChanged,\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n forceRender: forceRender,\n motionName: motionName,\n removeOnLeave: destroyOnClose,\n ref: dialogRef\n }, function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {\n ref: ref,\n title: title,\n ariaId: ariaId,\n prefixCls: prefixCls,\n holderRef: motionRef,\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n className: classNames(className, motionClassName)\n }));\n });\n});\nContent.displayName = 'Content';\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Mask from './Mask';\nimport { getMotionName } from '../util';\nimport Content from './Content';\nexport default function Dialog(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n zIndex = props.zIndex,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? false : _props$visible,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n wrapStyle = props.wrapStyle,\n wrapClassName = props.wrapClassName,\n wrapProps = props.wrapProps,\n onClose = props.onClose,\n afterClose = props.afterClose,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n maskStyle = props.maskStyle,\n maskProps = props.maskProps,\n rootClassName = props.rootClassName;\n var lastOutSideActiveElementRef = useRef();\n var wrapperRef = useRef();\n var contentRef = useRef();\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n // ========================== Init ==========================\n var ariaId = useId();\n function saveLastOutSideActiveElementRef() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n lastOutSideActiveElementRef.current = document.activeElement;\n }\n }\n function focusDialogContent() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n var _contentRef$current;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.focus();\n }\n }\n // ========================= Events =========================\n function onDialogVisibleChanged(newVisible) {\n // Try to focus\n if (newVisible) {\n focusDialogContent();\n } else {\n // Clean up scroll bar & focus back\n setAnimatedVisible(false);\n if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n try {\n lastOutSideActiveElementRef.current.focus({\n preventScroll: true\n });\n } catch (e) {\n // Do nothing\n }\n lastOutSideActiveElementRef.current = null;\n }\n // Trigger afterClose only when change visible from true to false\n if (animatedVisible) {\n afterClose === null || afterClose === void 0 ? void 0 : afterClose();\n }\n }\n }\n function onInternalClose(e) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n }\n // >>> Content\n var contentClickRef = useRef(false);\n var contentTimeoutRef = useRef();\n // We need record content click incase content popup out of dialog\n var onContentMouseDown = function onContentMouseDown() {\n clearTimeout(contentTimeoutRef.current);\n contentClickRef.current = true;\n };\n var onContentMouseUp = function onContentMouseUp() {\n contentTimeoutRef.current = setTimeout(function () {\n contentClickRef.current = false;\n });\n };\n // >>> Wrapper\n // Close only when element not on dialog\n var onWrapperClick = null;\n if (maskClosable) {\n onWrapperClick = function onWrapperClick(e) {\n if (contentClickRef.current) {\n contentClickRef.current = false;\n } else if (wrapperRef.current === e.target) {\n onInternalClose(e);\n }\n };\n }\n function onWrapperKeyDown(e) {\n if (keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n onInternalClose(e);\n return;\n }\n // keep focus inside dialog\n if (visible) {\n if (e.keyCode === KeyCode.TAB) {\n contentRef.current.changeActive(!e.shiftKey);\n }\n }\n }\n // ========================= Effect =========================\n useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n saveLastOutSideActiveElementRef();\n }\n }, [visible]);\n // Remove direct should also check the scroll bar update\n useEffect(function () {\n return function () {\n clearTimeout(contentTimeoutRef.current);\n };\n }, []);\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-root\"), rootClassName)\n }, pickAttrs(props, {\n data: true\n })), /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n visible: mask && visible,\n motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n style: _objectSpread({\n zIndex: zIndex\n }, maskStyle),\n maskProps: maskProps\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n tabIndex: -1,\n onKeyDown: onWrapperKeyDown,\n className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName),\n ref: wrapperRef,\n onClick: onWrapperClick,\n style: _objectSpread(_objectSpread({\n zIndex: zIndex\n }, wrapStyle), {}, {\n display: !animatedVisible ? 'none' : null\n })\n }, wrapProps), /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n onMouseDown: onContentMouseDown,\n onMouseUp: onContentMouseUp,\n ref: contentRef,\n closable: closable,\n ariaId: ariaId,\n prefixCls: prefixCls,\n visible: visible && animatedVisible,\n onClose: onInternalClose,\n onVisibleChanged: onDialogVisibleChanged,\n motionName: getMotionName(prefixCls, transitionName, animation)\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport Dialog from './Dialog';\n// fix issue #10656\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\nvar DialogWrap = function DialogWrap(props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n _props$destroyOnClose = props.destroyOnClose,\n destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n _afterClose = props.afterClose;\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n React.useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n }\n }, [visible]);\n // // 渲染在当前 dom 里;\n // if (getContainer === false) {\n // return (\n // 2} // 不对 body 做任何操作。。\n // />\n // );\n // }\n // Destroy on close will remove wrapped div\n if (!forceRender && destroyOnClose && !animatedVisible) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: visible || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: visible || animatedVisible\n }, /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {\n destroyOnClose: destroyOnClose,\n afterClose: function afterClose() {\n _afterClose === null || _afterClose === void 0 ? void 0 : _afterClose();\n setAnimatedVisible(false);\n }\n })));\n};\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import DialogWrap from './DialogWrap';\nimport Panel from './Dialog/Content/Panel';\nexport { Panel };\nexport default DialogWrap;","import { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport const FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: () => {}\n});\nexport const NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport const FormProvider = props => {\n const providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, Object.assign({}, providerProps));\n};\nexport const FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport const FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport const NoFormStyle = _ref => {\n let {\n children,\n status,\n override\n } = _ref;\n const formItemInputContext = useContext(FormItemInputContext);\n const newFormItemInputContext = useMemo(() => {\n const newContext = Object.assign({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const fadeIn = new Keyframes('antFadeIn', {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n});\nexport const fadeOut = new Keyframes('antFadeOut', {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n});\nexport const initFadeMotion = function (token) {\n let sameLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-fade`;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return [initMotion(motionCls, fadeIn, fadeOut, token.motionDurationMid, sameLevel), {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: {\n opacity: 0,\n animationTimingFunction: 'linear'\n },\n [`${sameLevelPrefix}${motionCls}-leave`]: {\n animationTimingFunction: 'linear'\n }\n }];\n};","import { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { clearFix, genFocusStyle, resetComponent } from '../../style';\nfunction box(position) {\n return {\n position,\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0\n };\n}\nexport const genModalMaskStyle = token => {\n const {\n componentCls\n } = token;\n return [{\n [`${componentCls}-root`]: {\n [`${componentCls}${token.antCls}-zoom-enter, ${componentCls}${token.antCls}-zoom-appear`]: {\n // reset scale avoid mousePosition bug\n transform: 'none',\n opacity: 0,\n animationDuration: token.motionDurationSlow,\n // https://github.com/ant-design/ant-design/issues/11777\n userSelect: 'none'\n },\n [`${componentCls}-mask`]: Object.assign(Object.assign({}, box('fixed')), {\n zIndex: token.zIndexPopupBase,\n height: '100%',\n backgroundColor: token.colorBgMask,\n [`${componentCls}-hidden`]: {\n display: 'none'\n }\n }),\n [`${componentCls}-wrap`]: Object.assign(Object.assign({}, box('fixed')), {\n overflow: 'auto',\n outline: 0,\n WebkitOverflowScrolling: 'touch'\n })\n }\n }, {\n [`${componentCls}-root`]: initFadeMotion(token)\n }];\n};\nconst genModalStyle = token => {\n const {\n componentCls\n } = token;\n return [\n // ======================== Root =========================\n {\n [`${componentCls}-root`]: {\n [`${componentCls}-wrap`]: {\n zIndex: token.zIndexPopupBase,\n position: 'fixed',\n inset: 0,\n overflow: 'auto',\n outline: 0,\n WebkitOverflowScrolling: 'touch'\n },\n [`${componentCls}-wrap-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-centered`]: {\n textAlign: 'center',\n '&::before': {\n display: 'inline-block',\n width: 0,\n height: '100%',\n verticalAlign: 'middle',\n content: '\"\"'\n },\n [componentCls]: {\n top: 0,\n display: 'inline-block',\n paddingBottom: 0,\n textAlign: 'start',\n verticalAlign: 'middle'\n }\n },\n [`@media (max-width: ${token.screenSMMax})`]: {\n [componentCls]: {\n maxWidth: 'calc(100vw - 16px)',\n margin: `${token.marginXS} auto`\n },\n [`${componentCls}-centered`]: {\n [componentCls]: {\n flex: 1\n }\n }\n }\n }\n },\n // ======================== Modal ========================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n pointerEvents: 'none',\n position: 'relative',\n top: 100,\n width: 'auto',\n maxWidth: `calc(100vw - ${token.margin * 2}px)`,\n margin: '0 auto',\n paddingBottom: token.paddingLG,\n [`${componentCls}-title`]: {\n margin: 0,\n color: token.modalHeadingColor,\n fontWeight: token.fontWeightStrong,\n fontSize: token.modalHeaderTitleFontSize,\n lineHeight: token.modalHeaderTitleLineHeight,\n wordWrap: 'break-word'\n },\n [`${componentCls}-content`]: {\n position: 'relative',\n backgroundColor: token.modalContentBg,\n backgroundClip: 'padding-box',\n border: 0,\n borderRadius: token.borderRadiusLG,\n boxShadow: token.boxShadowSecondary,\n pointerEvents: 'auto',\n padding: `${token.paddingMD}px ${token.paddingContentHorizontalLG}px`\n },\n [`${componentCls}-close`]: Object.assign({\n position: 'absolute',\n top: (token.modalHeaderCloseSize - token.modalCloseBtnSize) / 2,\n insetInlineEnd: (token.modalHeaderCloseSize - token.modalCloseBtnSize) / 2,\n zIndex: token.zIndexPopupBase + 10,\n padding: 0,\n color: token.modalCloseColor,\n fontWeight: token.fontWeightStrong,\n lineHeight: 1,\n textDecoration: 'none',\n background: 'transparent',\n borderRadius: token.borderRadiusSM,\n width: token.modalConfirmIconSize,\n height: token.modalConfirmIconSize,\n border: 0,\n outline: 0,\n cursor: 'pointer',\n transition: `color ${token.motionDurationMid}, background-color ${token.motionDurationMid}`,\n '&-x': {\n display: 'block',\n fontSize: token.fontSizeLG,\n fontStyle: 'normal',\n lineHeight: `${token.modalCloseBtnSize}px`,\n textAlign: 'center',\n textTransform: 'none',\n textRendering: 'auto'\n },\n '&:hover': {\n color: token.modalIconHoverColor,\n backgroundColor: token.wireframe ? 'transparent' : token.colorFillContent,\n textDecoration: 'none'\n },\n '&:active': {\n backgroundColor: token.wireframe ? 'transparent' : token.colorFillContentHover\n }\n }, genFocusStyle(token)),\n [`${componentCls}-header`]: {\n color: token.colorText,\n background: token.modalHeaderBg,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`,\n marginBottom: token.marginXS\n },\n [`${componentCls}-body`]: {\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n wordWrap: 'break-word'\n },\n [`${componentCls}-footer`]: {\n textAlign: 'end',\n background: token.modalFooterBg,\n marginTop: token.marginSM,\n [`${token.antCls}-btn + ${token.antCls}-btn:not(${token.antCls}-dropdown-trigger)`]: {\n marginBottom: 0,\n marginInlineStart: token.marginXS\n }\n },\n [`${componentCls}-open`]: {\n overflow: 'hidden'\n }\n })\n },\n // ======================== Pure =========================\n {\n [`${componentCls}-pure-panel`]: {\n top: 'auto',\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n [`${componentCls}-content,\n ${componentCls}-body,\n ${componentCls}-confirm-body-wrapper`]: {\n display: 'flex',\n flexDirection: 'column',\n flex: 'auto'\n },\n [`${componentCls}-confirm-body`]: {\n marginBottom: 'auto'\n }\n }\n }];\n};\nconst genModalConfirmStyle = token => {\n const {\n componentCls\n } = token;\n const confirmComponentCls = `${componentCls}-confirm`;\n return {\n [confirmComponentCls]: {\n '&-rtl': {\n direction: 'rtl'\n },\n [`${token.antCls}-modal-header`]: {\n display: 'none'\n },\n [`${confirmComponentCls}-body-wrapper`]: Object.assign({}, clearFix()),\n [`${confirmComponentCls}-body`]: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n [`${confirmComponentCls}-title`]: {\n flex: '0 0 100%',\n display: 'block',\n // create BFC to avoid\n // https://user-images.githubusercontent.com/507615/37702510-ba844e06-2d2d-11e8-9b67-8e19be57f445.png\n overflow: 'hidden',\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.modalHeaderTitleFontSize,\n lineHeight: token.modalHeaderTitleLineHeight,\n [`+ ${confirmComponentCls}-content`]: {\n marginBlockStart: token.marginXS,\n flexBasis: '100%',\n maxWidth: `calc(100% - ${token.modalConfirmIconSize + token.marginSM}px)`\n }\n },\n [`${confirmComponentCls}-content`]: {\n color: token.colorText,\n fontSize: token.fontSize\n },\n [`> ${token.iconCls}`]: {\n flex: 'none',\n marginInlineEnd: token.marginSM,\n fontSize: token.modalConfirmIconSize,\n [`+ ${confirmComponentCls}-title`]: {\n flex: 1\n },\n // `content` after `icon` should set marginLeft\n [`+ ${confirmComponentCls}-title + ${confirmComponentCls}-content`]: {\n marginInlineStart: token.modalConfirmIconSize + token.marginSM\n }\n }\n },\n [`${confirmComponentCls}-btns`]: {\n textAlign: 'end',\n marginTop: token.marginSM,\n [`${token.antCls}-btn + ${token.antCls}-btn`]: {\n marginBottom: 0,\n marginInlineStart: token.marginXS\n }\n }\n },\n [`${confirmComponentCls}-error ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorError\n },\n [`${confirmComponentCls}-warning ${confirmComponentCls}-body > ${token.iconCls},\n ${confirmComponentCls}-confirm ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorWarning\n },\n [`${confirmComponentCls}-info ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorInfo\n },\n [`${confirmComponentCls}-success ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorSuccess\n },\n // https://github.com/ant-design/ant-design/issues/37329\n [`${componentCls}-zoom-leave ${componentCls}-btns`]: {\n pointerEvents: 'none'\n }\n };\n};\nconst genRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-root`]: {\n [`${componentCls}-wrap-rtl`]: {\n direction: 'rtl',\n [`${componentCls}-confirm-body`]: {\n direction: 'rtl'\n }\n }\n }\n };\n};\nconst genWireframeStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const confirmComponentCls = `${componentCls}-confirm`;\n return {\n [componentCls]: {\n [`${componentCls}-content`]: {\n padding: 0\n },\n [`${componentCls}-header`]: {\n padding: token.modalHeaderPadding,\n borderBottom: `${token.modalHeaderBorderWidth}px ${token.modalHeaderBorderStyle} ${token.modalHeaderBorderColorSplit}`,\n marginBottom: 0\n },\n [`${componentCls}-body`]: {\n padding: token.modalBodyPadding\n },\n [`${componentCls}-footer`]: {\n padding: `${token.modalFooterPaddingVertical}px ${token.modalFooterPaddingHorizontal}px`,\n borderTop: `${token.modalFooterBorderWidth}px ${token.modalFooterBorderStyle} ${token.modalFooterBorderColorSplit}`,\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`,\n marginTop: 0\n }\n },\n [confirmComponentCls]: {\n [`${antCls}-modal-body`]: {\n padding: `${token.padding * 2}px ${token.padding * 2}px ${token.paddingLG}px`\n },\n [`${confirmComponentCls}-body`]: {\n [`> ${token.iconCls}`]: {\n marginInlineEnd: token.margin,\n // `content` after `icon` should set marginLeft\n [`+ ${confirmComponentCls}-title + ${confirmComponentCls}-content`]: {\n marginInlineStart: token.modalConfirmIconSize + token.margin\n }\n }\n },\n [`${confirmComponentCls}-btns`]: {\n marginTop: token.marginLG\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Modal', token => {\n const headerPaddingVertical = token.padding;\n const headerFontSize = token.fontSizeHeading5;\n const headerLineHeight = token.lineHeightHeading5;\n const modalToken = mergeToken(token, {\n modalBodyPadding: token.paddingLG,\n modalHeaderBg: token.colorBgElevated,\n modalHeaderPadding: `${headerPaddingVertical}px ${token.paddingLG}px`,\n modalHeaderBorderWidth: token.lineWidth,\n modalHeaderBorderStyle: token.lineType,\n modalHeaderTitleLineHeight: headerLineHeight,\n modalHeaderTitleFontSize: headerFontSize,\n modalHeaderBorderColorSplit: token.colorSplit,\n modalHeaderCloseSize: headerLineHeight * headerFontSize + headerPaddingVertical * 2,\n modalContentBg: token.colorBgElevated,\n modalHeadingColor: token.colorTextHeading,\n modalCloseColor: token.colorTextDescription,\n modalFooterBg: 'transparent',\n modalFooterBorderColorSplit: token.colorSplit,\n modalFooterBorderStyle: token.lineType,\n modalFooterPaddingVertical: token.paddingXS,\n modalFooterPaddingHorizontal: token.padding,\n modalFooterBorderWidth: token.lineWidth,\n modalConfirmTitleFontSize: token.fontSizeLG,\n modalIconHoverColor: token.colorIconHover,\n modalConfirmIconSize: token.fontSize * token.lineHeight,\n modalCloseBtnSize: token.controlHeightLG * 0.55\n });\n return [genModalStyle(modalToken), genModalConfirmStyle(modalToken), genRTLStyle(modalToken), genModalMaskStyle(modalToken), token.wireframe && genWireframeStyle(modalToken), initZoomMotion(modalToken, 'zoom')];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport { Panel } from 'rc-dialog';\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale/LocaleReceiver';\nimport { ConfirmContent } from './ConfirmDialog';\nimport { getConfirmLocale } from './locale';\nimport useStyle from './style';\nexport function renderCloseIcon(prefixCls, closeIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n}\nexport function renderFooter(props) {\n const {\n okText,\n okType = 'primary',\n cancelText,\n confirmLoading,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n footer\n } = props;\n return footer === undefined ? /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: getConfirmLocale()\n }, locale => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, Object.assign({\n onClick: onCancel\n }, cancelButtonProps), cancelText || locale.cancelText), /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: onOk\n }, okButtonProps), okText || locale.okText))) : footer;\n}\nexport default function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls,\n className,\n closeIcon,\n closable,\n type,\n title,\n children\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"closeIcon\", \"closable\", \"type\", \"title\", \"children\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const prefixCls = customizePrefixCls || getPrefixCls('modal');\n const [, hashId] = useStyle(prefixCls);\n const confirmPrefixCls = `${prefixCls}-confirm`;\n // Choose target props by confirm mark\n let additionalProps = {};\n if (type) {\n additionalProps = {\n closable: closable !== null && closable !== void 0 ? closable : false,\n title: '',\n footer: '',\n children: /*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {\n confirmPrefixCls: confirmPrefixCls,\n rootPrefixCls: rootPrefixCls,\n content: children\n }))\n };\n } else {\n additionalProps = {\n closable: closable !== null && closable !== void 0 ? closable : true,\n title,\n footer: renderFooter(props),\n children\n };\n }\n return /*#__PURE__*/React.createElement(Panel, Object.assign({\n prefixCls: prefixCls,\n className: classNames(hashId, `${prefixCls}-pure-panel`, type && confirmPrefixCls, type && `${confirmPrefixCls}-${type}`, className)\n }, restProps, {\n closeIcon: renderCloseIcon(prefixCls, closeIcon),\n closable: closable\n }, additionalProps));\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport { NoCompactStyle } from '../space/Compact';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport warning from '../_util/warning';\nimport { renderCloseIcon, renderFooter } from './PurePanel';\nimport useStyle from './style';\nlet mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nconst getClickPosition = e => {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n };\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\nconst Modal = props => {\n var _a;\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const handleCancel = e => {\n const {\n onCancel\n } = props;\n onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n };\n const handleOk = e => {\n const {\n onOk\n } = props;\n onOk === null || onOk === void 0 ? void 0 : onOk(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Modal', `\\`visible\\` will be removed in next major version, please use \\`open\\` instead.`) : void 0;\n const {\n prefixCls: customizePrefixCls,\n className,\n open,\n wrapClassName,\n centered,\n getContainer,\n closeIcon,\n focusTriggerAfterClose = true,\n // Deprecated\n visible,\n width = 520\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\", \"focusTriggerAfterClose\", \"visible\", \"width\"]);\n const prefixCls = getPrefixCls('modal', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const wrapClassNameExtended = classNames(wrapClassName, {\n [`${prefixCls}-centered`]: !!centered,\n [`${prefixCls}-wrap-rtl`]: direction === 'rtl'\n });\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Modal', '`visible` is deprecated, please use `open` instead.') : void 0;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(Dialog, Object.assign({\n width: width\n }, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n rootClassName: hashId,\n wrapClassName: wrapClassNameExtended,\n footer: renderFooter(Object.assign(Object.assign({}, props), {\n onOk: handleOk,\n onCancel: handleCancel\n })),\n visible: open !== null && open !== void 0 ? open : visible,\n mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n onClose: handleCancel,\n closeIcon: renderCloseIcon(prefixCls, closeIcon),\n focusTriggerAfterClose: focusTriggerAfterClose,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n className: classNames(hashId, className)\n })))));\n};\nexport default Modal;","import CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ConfigProvider from '../config-provider';\nimport LocaleReceiver from '../locale/LocaleReceiver';\nimport ActionButton from '../_util/ActionButton';\nimport { getTransitionName } from '../_util/motion';\nimport warning from '../_util/warning';\nimport Dialog from './Modal';\nexport function ConfirmContent(props) {\n const {\n icon,\n onCancel,\n onOk,\n close,\n okText,\n okButtonProps,\n cancelText,\n cancelButtonProps,\n confirmPrefixCls,\n rootPrefixCls,\n type,\n okCancel,\n footer,\n // Legacy for static function usage\n locale: staticLocale\n } = props;\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Modal', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n // Icon\n let mergedIcon = icon;\n // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n if (!icon && icon !== null) {\n switch (type) {\n case 'info':\n mergedIcon = /*#__PURE__*/React.createElement(InfoCircleFilled, null);\n break;\n case 'success':\n mergedIcon = /*#__PURE__*/React.createElement(CheckCircleFilled, null);\n break;\n case 'error':\n mergedIcon = /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n break;\n default:\n mergedIcon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null);\n }\n }\n const okType = props.okType || 'primary';\n // 默认为 true,保持向下兼容\n const mergedOkCancel = okCancel !== null && okCancel !== void 0 ? okCancel : type === 'confirm';\n const autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\"\n }, locale => {\n const mergedLocale = staticLocale || locale;\n const cancelButton = mergedOkCancel && /*#__PURE__*/React.createElement(ActionButton, {\n actionFn: onCancel,\n close: close,\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: `${rootPrefixCls}-btn`\n }, cancelText || (mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.cancelText));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-body-wrapper`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-body`\n }, mergedIcon, props.title === undefined ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: `${confirmPrefixCls}-title`\n }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-content`\n }, props.content)), footer !== undefined ? footer : /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-btns`\n }, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {\n type: okType,\n actionFn: onOk,\n close: close,\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: `${rootPrefixCls}-btn`\n }, okText || (mergedOkCancel ? mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.okText : mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.justOkText))));\n });\n}\nconst ConfirmDialog = props => {\n const {\n close,\n zIndex,\n afterClose,\n visible,\n open,\n keyboard,\n centered,\n getContainer,\n maskStyle,\n direction,\n prefixCls,\n wrapClassName,\n rootPrefixCls,\n iconPrefixCls,\n bodyStyle,\n closable = false,\n closeIcon,\n modalRender,\n focusTriggerAfterClose\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(visible === undefined, 'Modal', `\\`visible\\` is deprecated, please use \\`open\\` instead.`) : void 0;\n }\n const confirmPrefixCls = `${prefixCls}-confirm`;\n const width = props.width || 416;\n const style = props.style || {};\n const mask = props.mask === undefined ? true : props.mask;\n // 默认为 false,保持旧版默认行为\n const maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n const classString = classNames(confirmPrefixCls, `${confirmPrefixCls}-${props.type}`, {\n [`${confirmPrefixCls}-rtl`]: direction === 'rtl'\n }, props.className);\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n direction: direction\n }, /*#__PURE__*/React.createElement(Dialog, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames({\n [`${confirmPrefixCls}-centered`]: !!props.centered\n }, wrapClassName),\n onCancel: () => close === null || close === void 0 ? void 0 : close({\n triggerCancel: true\n }),\n open: open,\n title: \"\",\n footer: \"\",\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n mask: mask,\n maskClosable: maskClosable,\n maskStyle: maskStyle,\n style: style,\n bodyStyle: bodyStyle,\n width: width,\n zIndex: zIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer,\n closable: closable,\n closeIcon: closeIcon,\n modalRender: modalRender,\n focusTriggerAfterClose: focusTriggerAfterClose\n }, /*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {\n confirmPrefixCls: confirmPrefixCls\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n ConfirmDialog.displayName = 'ConfirmDialog';\n}\nexport default ConfirmDialog;","const destroyFns = [];\nexport default destroyFns;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport { globalConfig } from '../config-provider';\nimport warning from '../_util/warning';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nlet defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\nexport default function confirm(config) {\n const container = document.createDocumentFragment();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n let currentConfig = Object.assign(Object.assign({}, config), {\n close,\n open: true\n });\n let timeoutId;\n function destroy() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const triggerCancel = args.some(param => param && param.triggerCancel);\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, [() => {}].concat(_toConsumableArray(args.slice(1))));\n }\n for (let i = 0; i < destroyFns.length; i++) {\n const fn = destroyFns[i];\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n if (fn === close) {\n destroyFns.splice(i, 1);\n break;\n }\n }\n reactUnmount(container);\n }\n function render(_a) {\n var {\n okText,\n cancelText,\n prefixCls: customizePrefixCls\n } = _a,\n props = __rest(_a, [\"okText\", \"cancelText\", \"prefixCls\"]);\n clearTimeout(timeoutId);\n /**\n * https://github.com/ant-design/ant-design/issues/23623\n *\n * Sync render blocks React event. Let's make this async.\n */\n timeoutId = setTimeout(() => {\n const runtimeLocale = getConfirmLocale();\n const {\n getPrefixCls,\n getIconPrefixCls\n } = globalConfig();\n // because Modal.config \b set rootPrefixCls, which is different from other components\n const rootPrefixCls = getPrefixCls(undefined, getRootPrefixCls());\n const prefixCls = customizePrefixCls || `${rootPrefixCls}-modal`;\n const iconPrefixCls = getIconPrefixCls();\n reactRender( /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({}, props, {\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n okText: okText,\n locale: runtimeLocale,\n cancelText: cancelText || runtimeLocale.cancelText\n })), container);\n });\n }\n function close() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n currentConfig = Object.assign(Object.assign({}, currentConfig), {\n open: false,\n afterClose: () => {\n if (typeof config.afterClose === 'function') {\n config.afterClose();\n }\n destroy.apply(this, args);\n }\n });\n // Legacy support\n if (currentConfig.visible) {\n delete currentConfig.visible;\n }\n render(currentConfig);\n }\n function update(configUpdate) {\n if (typeof configUpdate === 'function') {\n currentConfig = configUpdate(currentConfig);\n } else {\n currentConfig = Object.assign(Object.assign({}, currentConfig), configUpdate);\n }\n render(currentConfig);\n }\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update\n };\n}\nexport function withWarn(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'warning'\n });\n}\nexport function withInfo(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'info'\n });\n}\nexport function withSuccess(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'success'\n });\n}\nexport function withError(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'error'\n });\n}\nexport function withConfirm(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'confirm'\n });\n}\nexport function modalGlobalConfig(_ref) {\n let {\n rootPrefixCls\n } = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n defaultRootPrefixCls = rootPrefixCls;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport LocaleReceiver from '../../locale/LocaleReceiver';\nimport defaultLocale from '../../locale/en_US';\nimport ConfirmDialog from '../ConfirmDialog';\nconst HookModal = (_ref, ref) => {\n let {\n afterClose,\n config\n } = _ref;\n var _a;\n const [open, setOpen] = React.useState(true);\n const [innerConfig, setInnerConfig] = React.useState(config);\n const {\n direction,\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('modal');\n const rootPrefixCls = getPrefixCls();\n const close = function () {\n setOpen(false);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const triggerCancel = args.some(param => param && param.triggerCancel);\n if (innerConfig.onCancel && triggerCancel) {\n innerConfig.onCancel.apply(innerConfig, [() => {}].concat(_toConsumableArray(args.slice(1))));\n }\n };\n React.useImperativeHandle(ref, () => ({\n destroy: close,\n update: newConfig => {\n setInnerConfig(originConfig => Object.assign(Object.assign({}, originConfig), newConfig));\n }\n }));\n const mergedOkCancel = (_a = innerConfig.okCancel) !== null && _a !== void 0 ? _a : innerConfig.type === 'confirm';\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: defaultLocale.Modal\n }, contextLocale => /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n open: open,\n afterClose: afterClose,\n okText: innerConfig.okText || (mergedOkCancel ? contextLocale.okText : contextLocale.justOkText),\n direction: direction,\n cancelText: innerConfig.cancelText || contextLocale.cancelText\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport HookModal from './HookModal';\nimport destroyFns from '../destroyFns';\nlet uuid = 0;\nconst ElementsHolder = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef((_props, ref) => {\n const [elements, patchElement] = usePatchElement();\n React.useImperativeHandle(ref, () => ({\n patchElement\n }), []);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nfunction useModal() {\n const holderRef = React.useRef(null);\n // ========================== Effect ==========================\n const [actionQueue, setActionQueue] = React.useState([]);\n React.useEffect(() => {\n if (actionQueue.length) {\n const cloneQueue = _toConsumableArray(actionQueue);\n cloneQueue.forEach(action => {\n action();\n });\n setActionQueue([]);\n }\n }, [actionQueue]);\n // =========================== Hook ===========================\n const getConfirmFunc = React.useCallback(withFunc => function hookConfirm(config) {\n var _a;\n uuid += 1;\n const modalRef = /*#__PURE__*/React.createRef();\n let closeFunc;\n const modal = /*#__PURE__*/React.createElement(HookModal, {\n key: `modal-${uuid}`,\n config: withFunc(config),\n ref: modalRef,\n afterClose: () => {\n closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n }\n });\n closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n if (closeFunc) {\n destroyFns.push(closeFunc);\n }\n return {\n destroy: () => {\n function destroyAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n if (modalRef.current) {\n destroyAction();\n } else {\n setActionQueue(prev => [].concat(_toConsumableArray(prev), [destroyAction]));\n }\n },\n update: newConfig => {\n function updateAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.update(newConfig);\n }\n if (modalRef.current) {\n updateAction();\n } else {\n setActionQueue(prev => [].concat(_toConsumableArray(prev), [updateAction]));\n }\n }\n };\n }, []);\n const fns = React.useMemo(() => ({\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n }), []);\n return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n key: \"modal-holder\",\n ref: holderRef\n })];\n}\nexport default useModal;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n const [elements, setElements] = React.useState([]);\n const patchElement = React.useCallback(element => {\n // append a new element to elements (and create a new ref)\n setElements(originElements => [].concat(_toConsumableArray(originElements), [element]));\n // return a function that removes the new element out of elements (and create a new ref)\n // it works a little like useEffect\n return () => {\n setElements(originElements => originElements.filter(ele => ele !== element));\n };\n }, []);\n return [elements, patchElement];\n}","import confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport PurePanel from './PurePanel';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\nconst Modal = OriginModal;\nModal.useModal = useModal;\nModal.info = function infoFn(props) {\n return confirm(withInfo(props));\n};\nModal.success = function successFn(props) {\n return confirm(withSuccess(props));\n};\nModal.error = function errorFn(props) {\n return confirm(withError(props));\n};\nModal.warning = modalWarn;\nModal.warn = modalWarn;\nModal.confirm = function confirmFn(props) {\n return confirm(withConfirm(props));\n};\nModal.destroyAll = function destroyAllFn() {\n while (destroyFns.length) {\n const close = destroyFns.pop();\n if (close) {\n close();\n }\n }\n};\nModal.config = modalGlobalConfig;\nModal._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Modal.displayName = 'Modal';\n}\nexport default Modal;","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeOutlined = function EyeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeOutlinedSvg\n }));\n};\nEyeOutlined.displayName = 'EyeOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeOutlined);","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n left: true,\n top: true\n};\nvar floatMap = {\n cssFloat: 1,\n styleFloat: 1,\n float: 1\n};\nfunction getComputedStyle(node) {\n return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\nfunction getStyleValue(node, type, value) {\n type = type.toLowerCase();\n if (value === 'auto') {\n if (type === 'height') {\n return node.offsetHeight;\n }\n if (type === 'width') {\n return node.offsetWidth;\n }\n }\n if (!(type in removePixel)) {\n removePixel[type] = PIXEL_PATTERN.test(type);\n }\n return removePixel[type] ? parseFloat(value) || 0 : value;\n}\nexport function get(node, name) {\n var length = arguments.length;\n var style = getComputedStyle(node);\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n var length = arguments.length;\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n if (length === 3) {\n if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n value = \"\".concat(value, \"px\");\n }\n node.style[name] = value; // Number\n return value;\n }\n for (var x in name) {\n if (name.hasOwnProperty(x)) {\n set(node, x, name[x]);\n }\n }\n return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n if (el === document.body) {\n return document.documentElement.clientWidth;\n }\n return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n if (el === document.body) {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n return el.offsetHeight;\n}\nexport function getDocSize() {\n var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n return {\n width: width,\n height: height\n };\n}\nexport function getClientSize() {\n var width = document.documentElement.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width: width,\n height: height\n };\n}\nexport function getScroll() {\n return {\n scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n };\n}\nexport function getOffset(node) {\n var box = node.getBoundingClientRect();\n var docElem = document.documentElement;\n\n // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"onVisibleChange\", \"getContainer\", \"current\", \"countRender\"];\nimport * as React from 'react';\nimport { useState } from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Preview from \"./Preview\";\n\n/* istanbul ignore next */\nexport var context = /*#__PURE__*/React.createContext({\n previewUrls: new Map(),\n setPreviewUrls: function setPreviewUrls() {\n return null;\n },\n current: null,\n setCurrent: function setCurrent() {\n return null;\n },\n setShowPreview: function setShowPreview() {\n return null;\n },\n setMousePosition: function setMousePosition() {\n return null;\n },\n registerImage: function registerImage() {\n return function () {\n return null;\n };\n },\n rootClassName: ''\n});\nvar Provider = context.Provider;\n\nvar Group = function Group(_ref) {\n var _ref$previewPrefixCls = _ref.previewPrefixCls,\n previewPrefixCls = _ref$previewPrefixCls === void 0 ? 'rc-image-preview' : _ref$previewPrefixCls,\n children = _ref.children,\n _ref$icons = _ref.icons,\n icons = _ref$icons === void 0 ? {} : _ref$icons,\n preview = _ref.preview;\n\n var _ref2 = _typeof(preview) === 'object' ? preview : {},\n _ref2$visible = _ref2.visible,\n previewVisible = _ref2$visible === void 0 ? undefined : _ref2$visible,\n _ref2$onVisibleChange = _ref2.onVisibleChange,\n onPreviewVisibleChange = _ref2$onVisibleChange === void 0 ? undefined : _ref2$onVisibleChange,\n _ref2$getContainer = _ref2.getContainer,\n getContainer = _ref2$getContainer === void 0 ? undefined : _ref2$getContainer,\n _ref2$current = _ref2.current,\n currentIndex = _ref2$current === void 0 ? 0 : _ref2$current,\n _ref2$countRender = _ref2.countRender,\n countRender = _ref2$countRender === void 0 ? undefined : _ref2$countRender,\n dialogProps = _objectWithoutProperties(_ref2, _excluded);\n\n var _useState = useState(new Map()),\n _useState2 = _slicedToArray(_useState, 2),\n previewUrls = _useState2[0],\n setPreviewUrls = _useState2[1];\n\n var _useState3 = useState(),\n _useState4 = _slicedToArray(_useState3, 2),\n current = _useState4[0],\n setCurrent = _useState4[1];\n\n var _useMergedState = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: onPreviewVisibleChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n isShowPreview = _useMergedState2[0],\n setShowPreview = _useMergedState2[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n mousePosition = _useState6[0],\n setMousePosition = _useState6[1];\n\n var isControlled = previewVisible !== undefined;\n var previewUrlsKeys = Array.from(previewUrls.keys());\n var currentControlledKey = previewUrlsKeys[currentIndex];\n var canPreviewUrls = new Map(Array.from(previewUrls).filter(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n canPreview = _ref4[1].canPreview;\n\n return !!canPreview;\n }).map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n id = _ref6[0],\n url = _ref6[1].url;\n\n return [id, url];\n }));\n\n var registerImage = function registerImage(id, url) {\n var canPreview = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var unRegister = function unRegister() {\n setPreviewUrls(function (oldPreviewUrls) {\n var clonePreviewUrls = new Map(oldPreviewUrls);\n var deleteResult = clonePreviewUrls.delete(id);\n return deleteResult ? clonePreviewUrls : oldPreviewUrls;\n });\n };\n\n setPreviewUrls(function (oldPreviewUrls) {\n return new Map(oldPreviewUrls).set(id, {\n url: url,\n canPreview: canPreview\n });\n });\n return unRegister;\n };\n\n var onPreviewClose = function onPreviewClose(e) {\n e.stopPropagation();\n setShowPreview(false);\n setMousePosition(null);\n };\n\n React.useEffect(function () {\n setCurrent(currentControlledKey);\n }, [currentControlledKey]);\n React.useEffect(function () {\n if (!isShowPreview && isControlled) {\n setCurrent(currentControlledKey);\n }\n }, [currentControlledKey, isControlled, isShowPreview]);\n return /*#__PURE__*/React.createElement(Provider, {\n value: {\n isPreviewGroup: true,\n previewUrls: canPreviewUrls,\n setPreviewUrls: setPreviewUrls,\n current: current,\n setCurrent: setCurrent,\n setShowPreview: setShowPreview,\n setMousePosition: setMousePosition,\n registerImage: registerImage\n }\n }, children, /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n src: canPreviewUrls.get(current),\n icons: icons,\n getContainer: getContainer,\n countRender: countRender\n }, dialogProps)));\n};\n\nexport default Group;","/** Minimum scale */\nexport var MIN_SCALE = 1;\n/** Maximum Scale */\n\nexport var MAX_SCALE = 50;\n/** Scale the ratio base */\n\nexport var BASE_SCALE_RATIO = 1;\n/** The maximum zoom ratio when the mouse zooms in, adjustable */\n\nexport var WHEEL_MAX_SCALE_RATIO = 0.2;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport Portal from '@rc-component/portal';\nimport { MIN_SCALE, MAX_SCALE } from \"./previewConfig\";\n\nvar Operations = function Operations(props) {\n var _countRender;\n\n var visible = props.visible,\n maskTransitionName = props.maskTransitionName,\n getContainer = props.getContainer,\n prefixCls = props.prefixCls,\n rootClassName = props.rootClassName,\n icons = props.icons,\n countRender = props.countRender,\n showSwitch = props.showSwitch,\n showProgress = props.showProgress,\n current = props.current,\n count = props.count,\n scale = props.scale,\n onSwitchLeft = props.onSwitchLeft,\n onSwitchRight = props.onSwitchRight,\n onClose = props.onClose,\n onZoomIn = props.onZoomIn,\n onZoomOut = props.onZoomOut,\n onRotateRight = props.onRotateRight,\n onRotateLeft = props.onRotateLeft;\n var rotateLeft = icons.rotateLeft,\n rotateRight = icons.rotateRight,\n zoomIn = icons.zoomIn,\n zoomOut = icons.zoomOut,\n close = icons.close,\n left = icons.left,\n right = icons.right;\n var toolClassName = \"\".concat(prefixCls, \"-operations-operation\");\n var iconClassName = \"\".concat(prefixCls, \"-operations-icon\");\n var tools = [{\n icon: close,\n onClick: onClose,\n type: 'close'\n }, {\n icon: zoomIn,\n onClick: onZoomIn,\n type: 'zoomIn',\n disabled: scale === MAX_SCALE\n }, {\n icon: zoomOut,\n onClick: onZoomOut,\n type: 'zoomOut',\n disabled: scale === MIN_SCALE\n }, {\n icon: rotateRight,\n onClick: onRotateRight,\n type: 'rotateRight'\n }, {\n icon: rotateLeft,\n onClick: onRotateLeft,\n type: 'rotateLeft'\n }];\n var operations = /*#__PURE__*/React.createElement(React.Fragment, null, showSwitch && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-left\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-left-disabled\"), current === 0)),\n onClick: onSwitchLeft\n }, left), /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-right\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-right-disabled\"), current === count - 1)),\n onClick: onSwitchRight\n }, right)), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-operations\")\n }, showProgress && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-operations-progress\")\n }, (_countRender = countRender === null || countRender === void 0 ? void 0 : countRender(current + 1, count)) !== null && _countRender !== void 0 ? _countRender : \"\".concat(current + 1, \" / \").concat(count)), tools.map(function (_ref) {\n var _classnames3;\n\n var icon = _ref.icon,\n onClick = _ref.onClick,\n type = _ref.type,\n disabled = _ref.disabled;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classnames(toolClassName, (_classnames3 = {}, _defineProperty(_classnames3, \"\".concat(prefixCls, \"-operations-operation-\").concat(type), true), _defineProperty(_classnames3, \"\".concat(prefixCls, \"-operations-operation-disabled\"), !!disabled), _classnames3)),\n onClick: onClick,\n key: type\n }, /*#__PURE__*/React.isValidElement(icon) ? /*#__PURE__*/React.cloneElement(icon, {\n className: iconClassName\n }) : icon);\n })));\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: maskTransitionName\n }, function (_ref2) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(Portal, {\n open: true,\n getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : document.body\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-operations-wrapper\"), className, rootClassName),\n style: style\n }, operations));\n });\n};\n\nexport default Operations;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nimport { MIN_SCALE, MAX_SCALE } from \"../previewConfig\";\nvar initialTransform = {\n x: 0,\n y: 0,\n rotate: 0,\n scale: 1\n};\nexport default function useImageTransform(imgRef) {\n var frame = useRef(null);\n var queue = useRef([]);\n\n var _useState = useState(initialTransform),\n _useState2 = _slicedToArray(_useState, 2),\n transform = _useState2[0],\n setTransform = _useState2[1];\n\n var resetTransform = function resetTransform() {\n setTransform(initialTransform);\n };\n /** Direct update transform */\n\n\n var updateTransform = function updateTransform(newTransform) {\n if (frame.current === null) {\n queue.current = [];\n frame.current = raf(function () {\n setTransform(function (preState) {\n var memoState = preState;\n queue.current.forEach(function (queueState) {\n memoState = _objectSpread(_objectSpread({}, memoState), queueState);\n });\n frame.current = null;\n return memoState;\n });\n });\n }\n\n queue.current.push(_objectSpread(_objectSpread({}, transform), newTransform));\n };\n /** Scale according to the position of clientX and clientY */\n\n\n var dispatchZoonChange = function dispatchZoonChange(ratio, clientX, clientY) {\n var _imgRef$current = imgRef.current,\n width = _imgRef$current.width,\n height = _imgRef$current.height,\n offsetWidth = _imgRef$current.offsetWidth,\n offsetHeight = _imgRef$current.offsetHeight,\n offsetLeft = _imgRef$current.offsetLeft,\n offsetTop = _imgRef$current.offsetTop;\n var newRatio = ratio;\n var newScale = transform.scale * ratio;\n\n if (newScale > MAX_SCALE) {\n newRatio = MAX_SCALE / transform.scale;\n newScale = MAX_SCALE;\n } else if (newScale < MIN_SCALE) {\n newRatio = MIN_SCALE / transform.scale;\n newScale = MIN_SCALE;\n }\n /** Default center point scaling */\n\n\n var mergedClientX = clientX !== null && clientX !== void 0 ? clientX : innerWidth / 2;\n var mergedClientY = clientY !== null && clientY !== void 0 ? clientY : innerHeight / 2;\n var diffRatio = newRatio - 1;\n /** Deviation calculated from image size */\n\n var diffImgX = diffRatio * width * 0.5;\n var diffImgY = diffRatio * height * 0.5;\n /** The difference between the click position and the edge of the document */\n\n var diffOffsetLeft = diffRatio * (mergedClientX - transform.x - offsetLeft);\n var diffOffsetTop = diffRatio * (mergedClientY - transform.y - offsetTop);\n /** Final positioning */\n\n var newX = transform.x - (diffOffsetLeft - diffImgX);\n var newY = transform.y - (diffOffsetTop - diffImgY);\n /**\n * When zooming the image\n * When the image size is smaller than the width and height of the window, the position is initialized\n */\n\n if (ratio < 1 && newScale === 1) {\n var mergedWidth = offsetWidth * newScale;\n var mergedHeight = offsetHeight * newScale;\n\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n\n if (mergedWidth <= clientWidth && mergedHeight <= clientHeight) {\n newX = 0;\n newY = 0;\n }\n }\n\n updateTransform({\n x: newX,\n y: newY,\n scale: newScale\n });\n };\n\n return {\n transform: transform,\n resetTransform: resetTransform,\n updateTransform: updateTransform,\n dispatchZoonChange: dispatchZoonChange\n };\n}\n;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\n\nfunction fixPoint(key, start, width, clientWidth) {\n var startAddWidth = start + width;\n var offsetStart = (width - clientWidth) / 2;\n\n if (width > clientWidth) {\n if (start > 0) {\n return _defineProperty({}, key, offsetStart);\n }\n\n if (start < 0 && startAddWidth < clientWidth) {\n return _defineProperty({}, key, -offsetStart);\n }\n } else if (start < 0 || startAddWidth > clientWidth) {\n return _defineProperty({}, key, start < 0 ? offsetStart : -offsetStart);\n }\n\n return {};\n}\n/**\n * Fix positon x,y point when\n *\n * Ele width && height < client\n * - Back origin\n *\n * - Ele width | height > clientWidth | clientHeight\n * - left | top > 0 -> Back 0\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\n *\n * Regardless of other\n */\n\n\nexport default function getFixScaleEleTransPosition(width, height, left, top) {\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n\n var fixPos = null;\n\n if (width <= clientWidth && height <= clientHeight) {\n fixPos = {\n x: 0,\n y: 0\n };\n } else if (width > clientWidth || height > clientHeight) {\n fixPos = _objectSpread(_objectSpread({}, fixPoint('x', left, width, clientWidth)), fixPoint('y', top, height, clientHeight));\n }\n\n return fixPos;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"src\", \"alt\", \"onClose\", \"afterClose\", \"visible\", \"icons\", \"rootClassName\", \"getContainer\", \"countRender\", \"scaleStep\", \"transitionName\", \"maskTransitionName\"];\nimport React, { useState, useEffect, useCallback, useRef, useContext } from 'react';\nimport Dialog from 'rc-dialog';\nimport classnames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { warning } from \"rc-util/es/warning\";\nimport { context } from \"./PreviewGroup\";\nimport Operations from \"./Operations\";\nimport useImageTransform from \"./hooks/useImageTransform\";\nimport getFixScaleEleTransPosition from \"./getFixScaleEleTransPosition\";\nimport { BASE_SCALE_RATIO, WHEEL_MAX_SCALE_RATIO } from \"./previewConfig\";\n\nvar Preview = function Preview(props) {\n var prefixCls = props.prefixCls,\n src = props.src,\n alt = props.alt,\n onClose = props.onClose,\n afterClose = props.afterClose,\n visible = props.visible,\n _props$icons = props.icons,\n icons = _props$icons === void 0 ? {} : _props$icons,\n rootClassName = props.rootClassName,\n getContainer = props.getContainer,\n countRender = props.countRender,\n _props$scaleStep = props.scaleStep,\n scaleStep = _props$scaleStep === void 0 ? 0.5 : _props$scaleStep,\n _props$transitionName = props.transitionName,\n transitionName = _props$transitionName === void 0 ? 'zoom' : _props$transitionName,\n _props$maskTransition = props.maskTransitionName,\n maskTransitionName = _props$maskTransition === void 0 ? 'fade' : _props$maskTransition,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var imgRef = useRef();\n var downPositionRef = useRef({\n deltaX: 0,\n deltaY: 0,\n transformX: 0,\n transformY: 0\n });\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isMoving = _useState2[0],\n setMoving = _useState2[1];\n\n var _useContext = useContext(context),\n previewUrls = _useContext.previewUrls,\n current = _useContext.current,\n isPreviewGroup = _useContext.isPreviewGroup,\n setCurrent = _useContext.setCurrent;\n\n var previewGroupCount = previewUrls.size;\n var previewUrlsKeys = Array.from(previewUrls.keys());\n var currentPreviewIndex = previewUrlsKeys.indexOf(current);\n var combinationSrc = isPreviewGroup ? previewUrls.get(current) : src;\n var showLeftOrRightSwitches = isPreviewGroup && previewGroupCount > 1;\n var showOperationsProgress = isPreviewGroup && previewGroupCount >= 1;\n\n var _useImageTransform = useImageTransform(imgRef),\n transform = _useImageTransform.transform,\n resetTransform = _useImageTransform.resetTransform,\n updateTransform = _useImageTransform.updateTransform,\n dispatchZoonChange = _useImageTransform.dispatchZoonChange;\n\n var rotate = transform.rotate,\n scale = transform.scale;\n var wrapClassName = classnames(_defineProperty({}, \"\".concat(prefixCls, \"-moving\"), isMoving));\n\n var onAfterClose = function onAfterClose() {\n resetTransform();\n };\n\n var onZoomIn = function onZoomIn() {\n dispatchZoonChange(BASE_SCALE_RATIO + scaleStep);\n };\n\n var onZoomOut = function onZoomOut() {\n dispatchZoonChange(BASE_SCALE_RATIO - scaleStep);\n };\n\n var onRotateRight = function onRotateRight() {\n updateTransform({\n rotate: rotate + 90\n });\n };\n\n var onRotateLeft = function onRotateLeft() {\n updateTransform({\n rotate: rotate - 90\n });\n };\n\n var onSwitchLeft = function onSwitchLeft(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (currentPreviewIndex > 0) {\n setCurrent(previewUrlsKeys[currentPreviewIndex - 1]);\n }\n };\n\n var onSwitchRight = function onSwitchRight(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (currentPreviewIndex < previewGroupCount - 1) {\n setCurrent(previewUrlsKeys[currentPreviewIndex + 1]);\n }\n };\n\n var onMouseUp = function onMouseUp() {\n if (visible && isMoving) {\n setMoving(false);\n /** No need to restore the position when the picture is not moved, So as not to interfere with the click */\n\n var _downPositionRef$curr = downPositionRef.current,\n transformX = _downPositionRef$curr.transformX,\n transformY = _downPositionRef$curr.transformY;\n var hasChangedPosition = transform.x !== transformX && transform.y !== transformY;\n\n if (!hasChangedPosition) {\n return;\n }\n\n var width = imgRef.current.offsetWidth * scale;\n var height = imgRef.current.offsetHeight * scale; // eslint-disable-next-line @typescript-eslint/no-shadow\n\n var _imgRef$current$getBo = imgRef.current.getBoundingClientRect(),\n left = _imgRef$current$getBo.left,\n top = _imgRef$current$getBo.top;\n\n var isRotate = rotate % 180 !== 0;\n var fixState = getFixScaleEleTransPosition(isRotate ? height : width, isRotate ? width : height, left, top);\n\n if (fixState) {\n updateTransform(_objectSpread({}, fixState));\n }\n }\n };\n\n var onMouseDown = function onMouseDown(event) {\n // Only allow main button\n if (event.button !== 0) return;\n event.preventDefault();\n event.stopPropagation();\n downPositionRef.current = {\n deltaX: event.pageX - transform.x,\n deltaY: event.pageY - transform.y,\n transformX: transform.x,\n transformY: transform.y\n };\n setMoving(true);\n };\n\n var onMouseMove = function onMouseMove(event) {\n if (visible && isMoving) {\n updateTransform({\n x: event.pageX - downPositionRef.current.deltaX,\n y: event.pageY - downPositionRef.current.deltaY\n });\n }\n };\n\n var onWheel = function onWheel(event) {\n if (!visible || event.deltaY == 0) return; // Scale ratio depends on the deltaY size\n\n var scaleRatio = Math.abs(event.deltaY / 100); // Limit the maximum scale ratio\n\n var mergedScaleRatio = Math.min(scaleRatio, WHEEL_MAX_SCALE_RATIO); // Scale the ratio each time\n\n var ratio = BASE_SCALE_RATIO + mergedScaleRatio * scaleStep;\n\n if (event.deltaY > 0) {\n ratio = BASE_SCALE_RATIO / ratio;\n }\n\n dispatchZoonChange(ratio, event.clientX, event.clientY);\n };\n\n var onKeyDown = useCallback(function (event) {\n if (!visible || !showLeftOrRightSwitches) return;\n\n if (event.keyCode === KeyCode.LEFT) {\n if (currentPreviewIndex > 0) {\n setCurrent(previewUrlsKeys[currentPreviewIndex - 1]);\n }\n } else if (event.keyCode === KeyCode.RIGHT) {\n if (currentPreviewIndex < previewGroupCount - 1) {\n setCurrent(previewUrlsKeys[currentPreviewIndex + 1]);\n }\n }\n }, [currentPreviewIndex, previewGroupCount, previewUrlsKeys, setCurrent, showLeftOrRightSwitches, visible]);\n\n var onDoubleClick = function onDoubleClick(event) {\n if (visible) {\n if (scale !== 1) {\n updateTransform({\n x: 0,\n y: 0,\n scale: 1\n });\n } else {\n dispatchZoonChange(BASE_SCALE_RATIO + scaleStep, event.clientX, event.clientY);\n }\n }\n };\n\n useEffect(function () {\n var onTopMouseUpListener;\n var onTopMouseMoveListener;\n var onMouseUpListener = addEventListener(window, 'mouseup', onMouseUp, false);\n var onMouseMoveListener = addEventListener(window, 'mousemove', onMouseMove, false);\n var onKeyDownListener = addEventListener(window, 'keydown', onKeyDown, false);\n\n try {\n // Resolve if in iframe lost event\n\n /* istanbul ignore next */\n if (window.top !== window.self) {\n onTopMouseUpListener = addEventListener(window.top, 'mouseup', onMouseUp, false);\n onTopMouseMoveListener = addEventListener(window.top, 'mousemove', onMouseMove, false);\n }\n } catch (error) {\n /* istanbul ignore next */\n warning(false, \"[rc-image] \".concat(error));\n }\n\n return function () {\n var _onTopMouseUpListener, _onTopMouseMoveListen;\n\n onMouseUpListener.remove();\n onMouseMoveListener.remove();\n onKeyDownListener.remove();\n /* istanbul ignore next */\n\n (_onTopMouseUpListener = onTopMouseUpListener) === null || _onTopMouseUpListener === void 0 ? void 0 : _onTopMouseUpListener.remove();\n /* istanbul ignore next */\n\n (_onTopMouseMoveListen = onTopMouseMoveListener) === null || _onTopMouseMoveListen === void 0 ? void 0 : _onTopMouseMoveListen.remove();\n };\n }, [visible, isMoving, onKeyDown]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dialog, _extends({\n transitionName: transitionName,\n maskTransitionName: maskTransitionName,\n closable: false,\n keyboard: true,\n prefixCls: prefixCls,\n onClose: onClose,\n afterClose: onAfterClose,\n visible: visible,\n wrapClassName: wrapClassName,\n rootClassName: rootClassName,\n getContainer: getContainer\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-img-wrapper\")\n }, /*#__PURE__*/React.createElement(\"img\", {\n width: props.width,\n height: props.height,\n onWheel: onWheel,\n onMouseDown: onMouseDown,\n onDoubleClick: onDoubleClick,\n ref: imgRef,\n className: \"\".concat(prefixCls, \"-img\"),\n src: combinationSrc,\n alt: alt,\n style: {\n transform: \"translate3d(\".concat(transform.x, \"px, \").concat(transform.y, \"px, 0) scale3d(\").concat(scale, \", \").concat(scale, \", 1) rotate(\").concat(rotate, \"deg)\")\n }\n }))), /*#__PURE__*/React.createElement(Operations, {\n visible: visible,\n maskTransitionName: maskTransitionName,\n getContainer: getContainer,\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n icons: icons,\n countRender: countRender,\n showSwitch: showLeftOrRightSwitches,\n showProgress: showOperationsProgress,\n current: currentPreviewIndex,\n count: previewGroupCount,\n scale: scale,\n onSwitchLeft: onSwitchLeft,\n onSwitchRight: onSwitchRight,\n onZoomIn: onZoomIn,\n onZoomOut: onZoomOut,\n onRotateRight: onRotateRight,\n onRotateLeft: onRotateLeft,\n onClose: onClose\n }));\n};\n\nexport default Preview;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"src\", \"alt\", \"onPreviewClose\", \"prefixCls\", \"previewPrefixCls\", \"placeholder\", \"fallback\", \"width\", \"height\", \"style\", \"preview\", \"className\", \"onClick\", \"onError\", \"wrapperClassName\", \"wrapperStyle\", \"rootClassName\", \"crossOrigin\", \"decoding\", \"loading\", \"referrerPolicy\", \"sizes\", \"srcSet\", \"useMap\", \"draggable\"],\n _excluded2 = [\"src\", \"visible\", \"onVisibleChange\", \"getContainer\", \"mask\", \"maskClassName\", \"icons\", \"scaleStep\"];\nimport * as React from 'react';\nimport { useState } from 'react';\nimport cn from 'classnames';\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Preview from \"./Preview\";\nimport PreviewGroup, { context } from \"./PreviewGroup\";\nvar uuid = 0;\n\nvar ImageInternal = function ImageInternal(_ref) {\n var _imgCommonProps$style;\n\n var imgSrc = _ref.src,\n alt = _ref.alt,\n onInitialPreviewClose = _ref.onPreviewClose,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-image' : _ref$prefixCls,\n _ref$previewPrefixCls = _ref.previewPrefixCls,\n previewPrefixCls = _ref$previewPrefixCls === void 0 ? \"\".concat(prefixCls, \"-preview\") : _ref$previewPrefixCls,\n placeholder = _ref.placeholder,\n fallback = _ref.fallback,\n width = _ref.width,\n height = _ref.height,\n style = _ref.style,\n _ref$preview = _ref.preview,\n preview = _ref$preview === void 0 ? true : _ref$preview,\n className = _ref.className,\n onClick = _ref.onClick,\n onImageError = _ref.onError,\n wrapperClassName = _ref.wrapperClassName,\n wrapperStyle = _ref.wrapperStyle,\n rootClassName = _ref.rootClassName,\n crossOrigin = _ref.crossOrigin,\n decoding = _ref.decoding,\n loading = _ref.loading,\n referrerPolicy = _ref.referrerPolicy,\n sizes = _ref.sizes,\n srcSet = _ref.srcSet,\n useMap = _ref.useMap,\n draggable = _ref.draggable,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var isCustomPlaceholder = placeholder && placeholder !== true;\n\n var _ref2 = _typeof(preview) === 'object' ? preview : {},\n previewSrc = _ref2.src,\n _ref2$visible = _ref2.visible,\n previewVisible = _ref2$visible === void 0 ? undefined : _ref2$visible,\n _ref2$onVisibleChange = _ref2.onVisibleChange,\n onPreviewVisibleChange = _ref2$onVisibleChange === void 0 ? onInitialPreviewClose : _ref2$onVisibleChange,\n _ref2$getContainer = _ref2.getContainer,\n getPreviewContainer = _ref2$getContainer === void 0 ? undefined : _ref2$getContainer,\n previewMask = _ref2.mask,\n maskClassName = _ref2.maskClassName,\n icons = _ref2.icons,\n scaleStep = _ref2.scaleStep,\n dialogProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var src = previewSrc !== null && previewSrc !== void 0 ? previewSrc : imgSrc;\n var isControlled = previewVisible !== undefined;\n\n var _useMergedState = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: onPreviewVisibleChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n isShowPreview = _useMergedState2[0],\n setShowPreview = _useMergedState2[1];\n\n var _useState = useState(isCustomPlaceholder ? 'loading' : 'normal'),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setStatus = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n mousePosition = _useState4[0],\n setMousePosition = _useState4[1];\n\n var isError = status === 'error';\n\n var _React$useContext = React.useContext(context),\n isPreviewGroup = _React$useContext.isPreviewGroup,\n setCurrent = _React$useContext.setCurrent,\n setGroupShowPreview = _React$useContext.setShowPreview,\n setGroupMousePosition = _React$useContext.setMousePosition,\n registerImage = _React$useContext.registerImage;\n\n var _React$useState = React.useState(function () {\n uuid += 1;\n return uuid;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n currentId = _React$useState2[0];\n\n var canPreview = !!preview;\n var isLoaded = React.useRef(false);\n\n var onLoad = function onLoad() {\n setStatus('normal');\n };\n\n var onError = function onError(e) {\n if (onImageError) {\n onImageError(e);\n }\n\n setStatus('error');\n };\n\n var onPreview = function onPreview(e) {\n if (!isControlled) {\n var _getOffset = getOffset(e.target),\n left = _getOffset.left,\n top = _getOffset.top;\n\n if (isPreviewGroup) {\n setCurrent(currentId);\n setGroupMousePosition({\n x: left,\n y: top\n });\n } else {\n setMousePosition({\n x: left,\n y: top\n });\n }\n }\n\n if (isPreviewGroup) {\n setGroupShowPreview(true);\n } else {\n setShowPreview(true);\n }\n\n if (onClick) onClick(e);\n };\n\n var onPreviewClose = function onPreviewClose(e) {\n e.stopPropagation();\n setShowPreview(false);\n\n if (!isControlled) {\n setMousePosition(null);\n }\n };\n\n var getImgRef = function getImgRef(img) {\n isLoaded.current = false;\n if (status !== 'loading') return;\n\n if (img !== null && img !== void 0 && img.complete && (img.naturalWidth || img.naturalHeight)) {\n isLoaded.current = true;\n onLoad();\n }\n }; // Keep order start\n // Resolve https://github.com/ant-design/ant-design/issues/28881\n // Only need unRegister when component unMount\n\n\n React.useEffect(function () {\n var unRegister = registerImage(currentId, src);\n return unRegister;\n }, []);\n React.useEffect(function () {\n registerImage(currentId, src, canPreview);\n }, [src, canPreview]); // Keep order end\n\n React.useEffect(function () {\n if (isError) {\n setStatus('normal');\n }\n\n if (isCustomPlaceholder && !isLoaded.current) {\n setStatus('loading');\n }\n }, [imgSrc]);\n var wrapperClass = cn(prefixCls, wrapperClassName, rootClassName, _defineProperty({}, \"\".concat(prefixCls, \"-error\"), isError));\n var mergedSrc = isError && fallback ? fallback : src;\n var imgCommonProps = {\n crossOrigin: crossOrigin,\n decoding: decoding,\n draggable: draggable,\n loading: loading,\n referrerPolicy: referrerPolicy,\n sizes: sizes,\n srcSet: srcSet,\n useMap: useMap,\n alt: alt,\n className: cn(\"\".concat(prefixCls, \"-img\"), _defineProperty({}, \"\".concat(prefixCls, \"-img-placeholder\"), placeholder === true), className),\n style: _objectSpread({\n height: height\n }, style)\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", _extends({}, otherProps, {\n className: wrapperClass,\n onClick: canPreview ? onPreview : onClick,\n style: _objectSpread({\n width: width,\n height: height\n }, wrapperStyle)\n }), /*#__PURE__*/React.createElement(\"img\", _extends({}, imgCommonProps, {\n ref: getImgRef\n }, isError && fallback ? {\n src: fallback\n } : {\n onLoad: onLoad,\n onError: onError,\n src: imgSrc\n }, {\n width: width,\n height: height\n })), status === 'loading' && /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-placeholder\")\n }, placeholder), previewMask && canPreview && /*#__PURE__*/React.createElement(\"div\", {\n className: cn(\"\".concat(prefixCls, \"-mask\"), maskClassName),\n style: {\n display: ((_imgCommonProps$style = imgCommonProps.style) === null || _imgCommonProps$style === void 0 ? void 0 : _imgCommonProps$style.display) === 'none' ? 'none' : undefined\n }\n }, previewMask)), !isPreviewGroup && canPreview && /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n src: mergedSrc,\n alt: alt,\n getContainer: getPreviewContainer,\n icons: icons,\n scaleStep: scaleStep,\n rootClassName: rootClassName\n }, dialogProps)));\n};\n\nImageInternal.PreviewGroup = PreviewGroup;\nImageInternal.displayName = 'Image';\nexport default ImageInternal;","import Image from \"./Image\";\nexport * from \"./Image\";\nexport default Image;","// This icon file is generated automatically.\nvar RotateLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\" } }] }, \"name\": \"rotate-left\", \"theme\": \"outlined\" };\nexport default RotateLeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RotateLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar RotateLeftOutlined = function RotateLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RotateLeftOutlinedSvg\n }));\n};\nRotateLeftOutlined.displayName = 'RotateLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(RotateLeftOutlined);","// This icon file is generated automatically.\nvar RotateRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\" } }] }, \"name\": \"rotate-right\", \"theme\": \"outlined\" };\nexport default RotateRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RotateRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar RotateRightOutlined = function RotateRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RotateRightOutlinedSvg\n }));\n};\nRotateRightOutlined.displayName = 'RotateRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RotateRightOutlined);","// This icon file is generated automatically.\nvar ZoomInOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\" } }] }, \"name\": \"zoom-in\", \"theme\": \"outlined\" };\nexport default ZoomInOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ZoomInOutlinedSvg from \"@ant-design/icons-svg/es/asn/ZoomInOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ZoomInOutlined = function ZoomInOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ZoomInOutlinedSvg\n }));\n};\nZoomInOutlined.displayName = 'ZoomInOutlined';\nexport default /*#__PURE__*/React.forwardRef(ZoomInOutlined);","// This icon file is generated automatically.\nvar ZoomOutOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\" } }] }, \"name\": \"zoom-out\", \"theme\": \"outlined\" };\nexport default ZoomOutOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ZoomOutOutlinedSvg from \"@ant-design/icons-svg/es/asn/ZoomOutOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ZoomOutOutlined = function ZoomOutOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ZoomOutOutlinedSvg\n }));\n};\nZoomOutOutlined.displayName = 'ZoomOutOutlined';\nexport default /*#__PURE__*/React.forwardRef(ZoomOutOutlined);","import { TinyColor } from '@ctrl/tinycolor';\nimport { genModalMaskStyle } from '../../modal/style';\nimport { initZoomMotion, initFadeMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent, textEllipsis } from '../../style';\nexport const genBoxStyle = position => ({\n position: position || 'absolute',\n inset: 0\n});\nexport const genImageMaskStyle = token => {\n const {\n iconCls,\n motionDurationSlow,\n paddingXXS,\n marginXXS,\n prefixCls\n } = token;\n return {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n background: new TinyColor('#000').setAlpha(0.5).toRgbString(),\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`,\n [`.${prefixCls}-mask-info`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${paddingXXS}px`,\n [iconCls]: {\n marginInlineEnd: marginXXS\n }\n })\n };\n};\nexport const genPreviewOperationsStyle = token => {\n const {\n previewCls,\n modalMaskBg,\n paddingSM,\n imagePreviewOperationDisabledColor,\n motionDurationSlow\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-operations`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n color: token.imagePreviewOperationColor,\n listStyle: 'none',\n background: operationBg.toRgbString(),\n pointerEvents: 'auto',\n '&-operation': {\n marginInlineStart: paddingSM,\n padding: paddingSM,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n background: operationBgHover.toRgbString()\n },\n '&-disabled': {\n color: imagePreviewOperationDisabledColor,\n pointerEvents: 'none'\n },\n '&:last-of-type': {\n marginInlineStart: 0\n }\n },\n '&-progress': {\n position: 'absolute',\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%)'\n },\n '&-icon': {\n fontSize: token.imagePreviewOperationSize\n }\n })\n };\n};\nexport const genPreviewSwitchStyle = token => {\n const {\n modalMaskBg,\n iconCls,\n imagePreviewOperationDisabledColor,\n previewCls,\n zIndexPopup,\n motionDurationSlow\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-switch-left, ${previewCls}-switch-right`]: {\n position: 'fixed',\n insetBlockStart: '50%',\n zIndex: zIndexPopup + 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: token.imagePreviewSwitchSize,\n height: token.imagePreviewSwitchSize,\n marginTop: -token.imagePreviewSwitchSize / 2,\n color: token.imagePreviewOperationColor,\n background: operationBg.toRgbString(),\n borderRadius: '50%',\n transform: `translateY(-50%)`,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n pointerEvents: 'auto',\n '&:hover': {\n background: operationBgHover.toRgbString()\n },\n [`&-disabled`]: {\n '&, &:hover': {\n color: imagePreviewOperationDisabledColor,\n background: 'transparent',\n cursor: 'not-allowed',\n [`> ${iconCls}`]: {\n cursor: 'not-allowed'\n }\n }\n },\n [`> ${iconCls}`]: {\n fontSize: token.imagePreviewOperationSize\n }\n },\n [`${previewCls}-switch-left`]: {\n insetInlineStart: token.marginSM\n },\n [`${previewCls}-switch-right`]: {\n insetInlineEnd: token.marginSM\n }\n };\n};\nexport const genImagePreviewStyle = token => {\n const {\n motionEaseOut,\n previewCls,\n motionDurationSlow,\n componentCls\n } = token;\n return [{\n [`${componentCls}-preview-root`]: {\n [previewCls]: {\n height: '100%',\n textAlign: 'center',\n pointerEvents: 'none'\n },\n [`${previewCls}-body`]: Object.assign(Object.assign({}, genBoxStyle()), {\n overflow: 'hidden'\n }),\n [`${previewCls}-img`]: {\n maxWidth: '100%',\n maxHeight: '100%',\n verticalAlign: 'middle',\n transform: 'scale3d(1, 1, 1)',\n cursor: 'grab',\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n userSelect: 'none',\n pointerEvents: 'auto',\n '&-wrapper': Object.assign(Object.assign({}, genBoxStyle()), {\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n // https://github.com/ant-design/ant-design/issues/39913\n // TailwindCSS will reset img default style.\n // Let's set back.\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '&::before': {\n display: 'inline-block',\n width: 1,\n height: '50%',\n marginInlineEnd: -1,\n content: '\"\"'\n }\n })\n },\n [`${previewCls}-moving`]: {\n [`${previewCls}-preview-img`]: {\n cursor: 'grabbing',\n '&-wrapper': {\n transitionDuration: '0s'\n }\n }\n }\n }\n },\n // Override\n {\n [`${componentCls}-preview-root`]: {\n [`${previewCls}-wrap`]: {\n zIndex: token.zIndexPopup\n }\n }\n },\n // Preview operations & switch\n {\n [`${componentCls}-preview-operations-wrapper`]: {\n position: 'fixed',\n insetBlockStart: 0,\n insetInlineEnd: 0,\n zIndex: token.zIndexPopup + 1,\n width: '100%'\n },\n '&': [genPreviewOperationsStyle(token), genPreviewSwitchStyle(token)]\n }];\n};\nconst genImageStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ============================== image ==============================\n [componentCls]: {\n position: 'relative',\n display: 'inline-block',\n [`${componentCls}-img`]: {\n width: '100%',\n height: 'auto',\n verticalAlign: 'middle'\n },\n [`${componentCls}-img-placeholder`]: {\n backgroundColor: token.colorBgContainerDisabled,\n backgroundImage: \"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')\",\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n backgroundSize: '30%'\n },\n [`${componentCls}-mask`]: Object.assign({}, genImageMaskStyle(token)),\n [`${componentCls}-mask:hover`]: {\n opacity: 1\n },\n [`${componentCls}-placeholder`]: Object.assign({}, genBoxStyle())\n }\n };\n};\nconst genPreviewMotion = token => {\n const {\n previewCls\n } = token;\n return {\n [`${previewCls}-root`]: initZoomMotion(token, 'zoom'),\n [`&`]: initFadeMotion(token, true)\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Image', token => {\n const imagePreviewOperationColor = new TinyColor(token.colorTextLightSolid);\n const previewCls = `${token.componentCls}-preview`;\n const imageToken = mergeToken(token, {\n previewCls,\n imagePreviewOperationColor: imagePreviewOperationColor.toRgbString(),\n imagePreviewOperationDisabledColor: new TinyColor(imagePreviewOperationColor).setAlpha(0.25).toRgbString(),\n modalMaskBg: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n imagePreviewOperationSize: token.fontSizeIcon * 1.5,\n imagePreviewSwitchSize: token.controlHeightLG\n });\n return [genImageStyle(imageToken), genImagePreviewStyle(imageToken), genModalMaskStyle(mergeToken(imageToken, {\n componentCls: previewCls\n })), genPreviewMotion(imageToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 80\n}));","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport RotateLeftOutlined from \"@ant-design/icons/es/icons/RotateLeftOutlined\";\nimport RotateRightOutlined from \"@ant-design/icons/es/icons/RotateRightOutlined\";\nimport ZoomInOutlined from \"@ant-design/icons/es/icons/ZoomInOutlined\";\nimport ZoomOutOutlined from \"@ant-design/icons/es/icons/ZoomOutOutlined\";\nimport RcImage from 'rc-image';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { getTransitionName } from '../_util/motion';\n// CSSINJS\nimport useStyle from './style';\nexport const icons = {\n rotateLeft: /*#__PURE__*/React.createElement(RotateLeftOutlined, null),\n rotateRight: /*#__PURE__*/React.createElement(RotateRightOutlined, null),\n zoomIn: /*#__PURE__*/React.createElement(ZoomInOutlined, null),\n zoomOut: /*#__PURE__*/React.createElement(ZoomOutOutlined, null),\n close: /*#__PURE__*/React.createElement(CloseOutlined, null),\n left: /*#__PURE__*/React.createElement(LeftOutlined, null),\n right: /*#__PURE__*/React.createElement(RightOutlined, null)\n};\nconst InternalPreviewGroup = _a => {\n var {\n previewPrefixCls: customizePrefixCls,\n preview\n } = _a,\n props = __rest(_a, [\"previewPrefixCls\", \"preview\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const previewPrefixCls = `${prefixCls}-preview`;\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedPreview = React.useMemo(() => {\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n return Object.assign(Object.assign({}, _preview), {\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),\n rootClassName: hashId\n });\n }, [preview]);\n return wrapSSR( /*#__PURE__*/React.createElement(RcImage.PreviewGroup, Object.assign({\n preview: mergedPreview,\n previewPrefixCls: previewPrefixCls,\n icons: icons\n }, props)));\n};\nexport default InternalPreviewGroup;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport RcImage from 'rc-image';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultLocale from '../locale/en_US';\nimport { getTransitionName } from '../_util/motion';\n// CSSINJS\nimport PreviewGroup, { icons } from './PreviewGroup';\nimport useStyle from './style';\nconst Image = _a => {\n var {\n prefixCls: customizePrefixCls,\n preview,\n rootClassName\n } = _a,\n otherProps = __rest(_a, [\"prefixCls\", \"preview\", \"rootClassName\"]);\n const {\n getPrefixCls,\n locale: contextLocale = defaultLocale,\n getPopupContainer: getContextPopupContainer\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const imageLocale = contextLocale.Image || defaultLocale.Image;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedRootClassName = classNames(rootClassName, hashId);\n const mergedPreview = React.useMemo(() => {\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const {\n getContainer\n } = _preview,\n restPreviewProps = __rest(_preview, [\"getContainer\"]);\n return Object.assign(Object.assign({\n mask: /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-mask-info`\n }, /*#__PURE__*/React.createElement(EyeOutlined, null), imageLocale === null || imageLocale === void 0 ? void 0 : imageLocale.preview),\n icons\n }, restPreviewProps), {\n getContainer: getContainer || getContextPopupContainer,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName)\n });\n }, [preview, imageLocale]);\n return wrapSSR( /*#__PURE__*/React.createElement(RcImage, Object.assign({\n prefixCls: `${prefixCls}`,\n preview: mergedPreview,\n rootClassName: mergedRootClassName\n }, otherProps)));\n};\nImage.PreviewGroup = PreviewGroup;\nif (process.env.NODE_ENV !== 'production') {\n Image.displayName = 'Image';\n}\nexport default Image;","import classNames from 'classnames';\nimport * as React from 'react';\nconst Element = props => {\n const {\n prefixCls,\n className,\n style,\n size,\n shape\n } = props;\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small'\n });\n const shapeCls = classNames({\n [`${prefixCls}-circle`]: shape === 'circle',\n [`${prefixCls}-square`]: shape === 'square',\n [`${prefixCls}-round`]: shape === 'round'\n });\n const sizeStyle = React.useMemo(() => typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: `${size}px`\n } : {}, [size]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(prefixCls, sizeCls, shapeCls, className),\n style: Object.assign(Object.assign({}, sizeStyle), style)\n });\n};\nexport default Element;","import { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst skeletonClsLoading = new Keyframes(`ant-skeleton-loading`, {\n '0%': {\n transform: 'translateX(-37.5%)'\n },\n '100%': {\n transform: 'translateX(37.5%)'\n }\n});\nconst genSkeletonElementCommonSize = size => ({\n height: size,\n lineHeight: `${size}px`\n});\nconst genSkeletonElementAvatarSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonColor = token => ({\n position: 'relative',\n // fix https://github.com/ant-design/ant-design/issues/36444\n // https://monshin.github.io/202109/css/safari-border-radius-overflow-hidden/\n /* stylelint-disable-next-line property-no-vendor-prefix,value-no-vendor-prefix */\n zIndex: 0,\n overflow: 'hidden',\n background: 'transparent',\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: '-150%',\n bottom: 0,\n insetInlineStart: '-150%',\n background: token.skeletonLoadingBackground,\n animationName: skeletonClsLoading,\n animationDuration: token.skeletonLoadingMotionDuration,\n animationTimingFunction: 'ease',\n animationIterationCount: 'infinite',\n content: '\"\"'\n }\n});\nconst genSkeletonElementInputSize = size => Object.assign({\n width: size * 5,\n minWidth: size * 5\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementAvatar = token => {\n const {\n skeletonAvatarCls,\n color,\n controlHeight,\n controlHeightLG,\n controlHeightSM\n } = token;\n return {\n [`${skeletonAvatarCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n };\n};\nconst genSkeletonElementInput = token => {\n const {\n controlHeight,\n borderRadiusSM,\n skeletonInputCls,\n controlHeightLG,\n controlHeightSM,\n color\n } = token;\n return {\n [`${skeletonInputCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color,\n borderRadius: borderRadiusSM\n }, genSkeletonElementInputSize(controlHeight)),\n [`${skeletonInputCls}-lg`]: Object.assign({}, genSkeletonElementInputSize(controlHeightLG)),\n [`${skeletonInputCls}-sm`]: Object.assign({}, genSkeletonElementInputSize(controlHeightSM))\n };\n};\nconst genSkeletonElementImageSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementImage = token => {\n const {\n skeletonImageCls,\n imageSizeBase,\n color,\n borderRadiusSM\n } = token;\n return {\n [`${skeletonImageCls}`]: Object.assign(Object.assign({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'top',\n background: color,\n borderRadius: borderRadiusSM\n }, genSkeletonElementImageSize(imageSizeBase * 2)), {\n [`${skeletonImageCls}-path`]: {\n fill: '#bfbfbf'\n },\n [`${skeletonImageCls}-svg`]: Object.assign(Object.assign({}, genSkeletonElementImageSize(imageSizeBase)), {\n maxWidth: imageSizeBase * 4,\n maxHeight: imageSizeBase * 4\n }),\n [`${skeletonImageCls}-svg${skeletonImageCls}-svg-circle`]: {\n borderRadius: '50%'\n }\n }),\n [`${skeletonImageCls}${skeletonImageCls}-circle`]: {\n borderRadius: '50%'\n }\n };\n};\nconst genSkeletonElementButtonShape = (token, size, buttonCls) => {\n const {\n skeletonButtonCls\n } = token;\n return {\n [`${buttonCls}${skeletonButtonCls}-circle`]: {\n width: size,\n minWidth: size,\n borderRadius: '50%'\n },\n [`${buttonCls}${skeletonButtonCls}-round`]: {\n borderRadius: size\n }\n };\n};\nconst genSkeletonElementButtonSize = size => Object.assign({\n width: size * 2,\n minWidth: size * 2\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementButton = token => {\n const {\n borderRadiusSM,\n skeletonButtonCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n color\n } = token;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n [`${skeletonButtonCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color,\n borderRadius: borderRadiusSM,\n width: controlHeight * 2,\n minWidth: controlHeight * 2\n }, genSkeletonElementButtonSize(controlHeight))\n }, genSkeletonElementButtonShape(token, controlHeight, skeletonButtonCls)), {\n [`${skeletonButtonCls}-lg`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightLG))\n }), genSkeletonElementButtonShape(token, controlHeightLG, `${skeletonButtonCls}-lg`)), {\n [`${skeletonButtonCls}-sm`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightSM))\n }), genSkeletonElementButtonShape(token, controlHeightSM, `${skeletonButtonCls}-sm`));\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n skeletonAvatarCls,\n skeletonTitleCls,\n skeletonParagraphCls,\n skeletonButtonCls,\n skeletonInputCls,\n skeletonImageCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n color,\n padding,\n marginSM,\n borderRadius,\n skeletonTitleHeight,\n skeletonBlockRadius,\n skeletonParagraphLineHeight,\n controlHeightXS,\n skeletonParagraphMarginTop\n } = token;\n return {\n [`${componentCls}`]: {\n display: 'table',\n width: '100%',\n [`${componentCls}-header`]: {\n display: 'table-cell',\n paddingInlineEnd: padding,\n verticalAlign: 'top',\n // Avatar\n [`${skeletonAvatarCls}`]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: color\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n },\n [`${componentCls}-content`]: {\n display: 'table-cell',\n width: '100%',\n verticalAlign: 'top',\n // Title\n [`${skeletonTitleCls}`]: {\n width: '100%',\n height: skeletonTitleHeight,\n background: color,\n borderRadius: skeletonBlockRadius,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: controlHeightSM\n }\n },\n // paragraph\n [`${skeletonParagraphCls}`]: {\n padding: 0,\n '> li': {\n width: '100%',\n height: skeletonParagraphLineHeight,\n listStyle: 'none',\n background: color,\n borderRadius: skeletonBlockRadius,\n '+ li': {\n marginBlockStart: controlHeightXS\n }\n }\n },\n [`${skeletonParagraphCls}> li:last-child:not(:first-child):not(:nth-child(2))`]: {\n width: '61%'\n }\n },\n [`&-round ${componentCls}-content`]: {\n [`${skeletonTitleCls}, ${skeletonParagraphCls} > li`]: {\n borderRadius\n }\n }\n },\n [`${componentCls}-with-avatar ${componentCls}-content`]: {\n // Title\n [`${skeletonTitleCls}`]: {\n marginBlockStart: marginSM,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: skeletonParagraphMarginTop\n }\n }\n },\n // Skeleton element\n [`${componentCls}${componentCls}-element`]: Object.assign(Object.assign(Object.assign(Object.assign({\n display: 'inline-block',\n width: 'auto'\n }, genSkeletonElementButton(token)), genSkeletonElementAvatar(token)), genSkeletonElementInput(token)), genSkeletonElementImage(token)),\n // Skeleton Block Button, Input\n [`${componentCls}${componentCls}-block`]: {\n width: '100%',\n [`${skeletonButtonCls}`]: {\n width: '100%'\n },\n [`${skeletonInputCls}`]: {\n width: '100%'\n }\n },\n // With active animation\n [`${componentCls}${componentCls}-active`]: {\n [`\n ${skeletonTitleCls},\n ${skeletonParagraphCls} > li,\n ${skeletonAvatarCls},\n ${skeletonButtonCls},\n ${skeletonInputCls},\n ${skeletonImageCls}\n `]: Object.assign({}, genSkeletonColor(token))\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Skeleton', token => {\n const {\n componentCls\n } = token;\n const skeletonToken = mergeToken(token, {\n skeletonAvatarCls: `${componentCls}-avatar`,\n skeletonTitleCls: `${componentCls}-title`,\n skeletonParagraphCls: `${componentCls}-paragraph`,\n skeletonButtonCls: `${componentCls}-button`,\n skeletonInputCls: `${componentCls}-input`,\n skeletonImageCls: `${componentCls}-image`,\n imageSizeBase: token.controlHeight * 1.5,\n skeletonTitleHeight: token.controlHeight / 2,\n skeletonBlockRadius: token.borderRadiusSM,\n skeletonParagraphLineHeight: token.controlHeight / 2,\n skeletonParagraphMarginTop: token.marginLG + token.marginXXS,\n borderRadius: 100,\n skeletonLoadingBackground: `linear-gradient(90deg, ${token.color} 25%, ${token.colorGradientEnd} 37%, ${token.color} 63%)`,\n skeletonLoadingMotionDuration: '1.4s'\n });\n return [genBaseStyle(skeletonToken)];\n}, token => {\n const {\n colorFillContent,\n colorFill\n } = token;\n return {\n color: colorFillContent,\n colorGradientEnd: colorFill\n };\n});","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonAvatar = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n active,\n shape = 'circle',\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls', 'className']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-avatar`,\n shape: shape,\n size: size\n }, otherProps))));\n};\nexport default SkeletonAvatar;","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonButton = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n active,\n block = false,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-button`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonButton;","// This icon file is generated automatically.\nvar DotChartOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"dot-chart\", \"theme\": \"outlined\" };\nexport default DotChartOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DotChartOutlinedSvg from \"@ant-design/icons-svg/es/asn/DotChartOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DotChartOutlined = function DotChartOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DotChartOutlinedSvg\n }));\n};\nDotChartOutlined.displayName = 'DotChartOutlined';\nexport default /*#__PURE__*/React.forwardRef(DotChartOutlined);","import DotChartOutlined from \"@ant-design/icons/es/icons/DotChartOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport useStyle from './style';\nimport { ConfigContext } from '../config-provider';\nconst SkeletonNode = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n active,\n children\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, hashId, className);\n const content = children !== null && children !== void 0 ? children : /*#__PURE__*/React.createElement(DotChartOutlined, null);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, content)));\n};\nexport default SkeletonNode;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst path = 'M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z';\nconst SkeletonImage = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n active\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 1098 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: `${prefixCls}-image-svg`\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: path,\n className: `${prefixCls}-image-path`\n })))));\n};\nexport default SkeletonImage;","import classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonInput = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n active,\n block,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-input`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonInput;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nconst Paragraph = props => {\n const getWidth = index => {\n const {\n width,\n rows = 2\n } = props;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n };\n const {\n prefixCls,\n className,\n style,\n rows\n } = props;\n const rowList = _toConsumableArray(Array(rows)).map((_, index) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: index,\n style: {\n width: getWidth(index)\n }\n }));\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(prefixCls, className),\n style: style\n }, rowList);\n};\nexport default Paragraph;","/* eslint-disable jsx-a11y/heading-has-content */\nimport classNames from 'classnames';\nimport * as React from 'react';\nconst Title = _ref => {\n let {\n prefixCls,\n className,\n width,\n style\n } = _ref;\n return /*#__PURE__*/React.createElement(\"h3\", {\n className: classNames(prefixCls, className),\n style: Object.assign({\n width\n }, style)\n });\n};\nexport default Title;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonButton from './Button';\nimport SkeletonNode from './Node';\nimport Element from './Element';\nimport SkeletonImage from './Image';\nimport SkeletonInput from './Input';\nimport Paragraph from './Paragraph';\nimport Title from './Title';\nimport useStyle from './style';\nfunction getComponentProps(prop) {\n if (prop && typeof prop === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n // Square avatar\n return {\n size: 'large',\n shape: 'square'\n };\n }\n return {\n size: 'large',\n shape: 'circle'\n };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return {\n width: '38%'\n };\n }\n if (hasAvatar && hasParagraph) {\n return {\n width: '50%'\n };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n const basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n } else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nconst Skeleton = props => {\n const {\n prefixCls: customizePrefixCls,\n loading,\n className,\n style,\n children,\n avatar = false,\n title = true,\n paragraph = true,\n active,\n round\n } = props;\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n if (loading || !('loading' in props)) {\n const hasAvatar = !!avatar;\n const hasTitle = !!title;\n const hasParagraph = !!paragraph;\n // Avatar\n let avatarNode;\n if (hasAvatar) {\n const avatarProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-avatar`\n }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n // We direct use SkeletonElement as avatar in skeleton internal.\n avatarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, /*#__PURE__*/React.createElement(Element, Object.assign({}, avatarProps)));\n }\n let contentNode;\n if (hasTitle || hasParagraph) {\n // Title\n let $title;\n if (hasTitle) {\n const titleProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-title`\n }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n $title = /*#__PURE__*/React.createElement(Title, Object.assign({}, titleProps));\n }\n // Paragraph\n let paragraphNode;\n if (hasParagraph) {\n const paragraphProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-paragraph`\n }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n paragraphNode = /*#__PURE__*/React.createElement(Paragraph, Object.assign({}, paragraphProps));\n }\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, $title, paragraphNode);\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-with-avatar`]: hasAvatar,\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-round`]: round\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: style\n }, avatarNode, contentNode));\n }\n return typeof children !== 'undefined' ? children : null;\n};\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nSkeleton.Image = SkeletonImage;\nSkeleton.Node = SkeletonNode;\nif (process.env.NODE_ENV !== 'production') {\n Skeleton.displayName = 'Skeleton';\n}\nexport default Skeleton;","import Skeleton from './Skeleton';\nexport default Skeleton;","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import * as React from 'react';\nimport classNames from 'classnames';\nvar TabPane = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n tabKey = _ref.tabKey,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: classNames(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\n\nexport default TabPane;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"./TabPane\";\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (_ref2) {\n var key = _ref2.key,\n forceRender = _ref2.forceRender,\n paneStyle = _ref2.style,\n paneClassName = _ref2.className,\n restTabProps = _objectWithoutProperties(_ref2, _excluded);\n\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!destroyInactiveTabPane,\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref3, ref) {\n var motionStyle = _ref3.style,\n motionClassName = _ref3.className;\n return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),\n className: classNames(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key); // Reuse last one when not exist yet\n\n if (!data) {\n var _tabs;\n\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n\n var entity = map.get(key) || _objectSpread({}, data); // Right\n\n\n entity.right = rightOffset - entity.left - entity.width; // Update entity\n\n map.set(key, entity);\n }\n\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useRaf(callback) {\n var rafRef = useRef();\n var removedRef = useRef(false);\n\n function trigger() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!removedRef.current) {\n raf.cancel(rafRef.current);\n rafRef.current = raf(function () {\n callback.apply(void 0, args);\n });\n }\n }\n\n useEffect(function () {\n //be compatible with react 18 StrictMode in dev\n removedRef.current = false;\n return function () {\n removedRef.current = true;\n raf.cancel(rafRef.current);\n };\n }, []);\n return trigger;\n}\nexport function useRafState(defaultState) {\n var batchRef = useRef([]);\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useRaf(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n\n return [state.current, updater];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n\n stateRef.current = newValue;\n forceUpdate({});\n }\n\n return [stateRef.current, setState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL); // ================================= Hook =================================\n\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n\n var motionRef = useRef(); // ========================= Events =========================\n // >>> Touch events\n\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null); // Swipe if needed\n\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY); // Skip swipe if low distance\n\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n } // >>> Wheel event\n\n\n var lastWheelDirectionRef = useRef();\n\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC\n\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n } // ========================= Effect =========================\n\n\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n }); // No need to clean up since element removed\n\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n\n var len = tabs.length;\n var endIndex = len;\n\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n\n if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {\n endIndex = i - 1;\n break;\n }\n }\n\n var startIndex = 0;\n\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n\n return [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nexport function stringify(obj) {\n var tgt;\n\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n\n return JSON.stringify(tgt);\n}","import * as React from 'react';\n\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n\n if (!editable || editable.showAdd === false) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n}\n\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content; // Parse extra\n\n var assertExtra = {};\n\n if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n\n if (position === 'right') {\n content = assertExtra.right;\n }\n\n if (position === 'left') {\n content = assertExtra.left;\n }\n\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\n\nexport default ExtraContent;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport AddButton from \"./AddButton\";\n\nfunction OperationNode(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n tabs = _ref.tabs,\n locale = _ref.locale,\n mobile = _ref.mobile,\n _ref$moreIcon = _ref.moreIcon,\n moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n style = _ref.style,\n className = _ref.className,\n editable = _ref.editable,\n tabBarGutter = _ref.tabBarGutter,\n rtl = _ref.rtl,\n removeAriaLabel = _ref.removeAriaLabel,\n onTabClick = _ref.onTabClick,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName;\n\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref2) {\n var key = _ref2.key,\n domEvent = _ref2.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var removable = editable && tab.closable !== false && !tab.disabled;\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: tab.key,\n id: \"\".concat(popupId, \"-\").concat(tab.key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(tab.key),\n disabled: tab.disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, tab.label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, tab.key);\n }\n }, tab.closeIcon || editable.removeIcon || '×'));\n }));\n\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n\n function onKeyDown(e) {\n var which = e.which;\n\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n\n return;\n }\n\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n\n case KeyCode.ESC:\n setOpen(false);\n break;\n\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n } // ========================= Effect =========================\n\n\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]); // ========================= Render =========================\n\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: tabs.length ? open : false,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: classNames(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n}\n\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n return (// https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\n\nfunction TabNode(_ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n label = _ref$tab.label,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = editable && closable !== false && !disabled;\n\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n\n onClick(e);\n }\n\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key // ref={ref}\n ,\n \"data-node-key\": key,\n className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n}\n\nexport default TabNode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useRaf, { useRafState } from \"../hooks/useRaf\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\n\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n\n return [offsetWidth, offsetHeight];\n};\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\n\n\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\n\nfunction TabNavList(props, ref) {\n var _classNames;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll;\n var containerRef = useRef();\n var extraLeftRef = useRef();\n var extraRightRef = useRef();\n var tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef(); // const [getBtnRef, removeBtnRef] = useRefs();\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n\n var _useState = useState([0, 0]),\n _useState2 = _slicedToArray(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n\n var _useState3 = useState([0, 0]),\n _useState4 = _slicedToArray(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n\n var _useState5 = useState([0, 0]),\n _useState6 = _slicedToArray(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n\n var _useState7 = useState([0, 0]),\n _useState8 = _slicedToArray(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n\n var _useRafState = useRafState(new Map()),\n _useRafState2 = _slicedToArray(_useRafState, 2),\n tabSizes = _useRafState2[0],\n setTabSizes = _useRafState2[1];\n\n var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]); // ========================== Unit =========================\n\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue; // ========================== Util =========================\n\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n\n if (value > transformMax) {\n return transformMax;\n }\n\n return value;\n } // ========================= Mobile ========================\n\n\n var touchMovingRef = useRef();\n\n var _useState9 = useState(),\n _useState10 = _slicedToArray(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\n\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n } // Skip scroll if place is enough\n\n\n if (containerExcludeExtraSizeValue >= tabContentSizeValue) {\n return false;\n }\n\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n\n return clearTouchMoving;\n }, [lockAnimation]); // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n\n var _useVisibleRange = useVisibleRange(tabOffsets, // Container\n visibleTabContentValue, // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop, // Tabs\n tabContentSizeValue, // Add\n addSizeValue, // Operation\n operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1]; // ========================= Scroll ========================\n\n\n var scrollToTab = function scrollToTab() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft; // RTL\n\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n } // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n }; // ========================== Tab ==========================\n\n\n var tabNodeStyle = {};\n\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */\n ,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n\n if (!tabsWrapperRef.current) {\n return;\n } // Focus element will make scrollLeft change which we should reset back\n\n\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n }); // Update buttons records\n\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current;\n\n var key = _ref2.key;\n var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector(\"[data-node-key=\\\"\".concat(key, \"\\\"]\"));\n\n if (btnNode) {\n newSizes.set(key, {\n width: btnNode.offsetWidth,\n height: btnNode.offsetHeight,\n left: btnNode.offsetLeft,\n top: btnNode.offsetTop\n });\n }\n });\n return newSizes;\n });\n };\n\n useEffect(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = useRaf(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize); // Which includes add button size\n\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]); // Update buttons records\n\n updateTabSizes();\n }); // ======================== Dropdown =======================\n\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n var _useState11 = useState(),\n _useState12 = _slicedToArray(_useState11, 2),\n inkStyle = _useState12[0],\n setInkStyle = _useState12[1];\n\n var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n var inkBarRafRef = useRef();\n\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n\n useEffect(function () {\n var newInkStyle = {};\n\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n useEffect(function () {\n scrollToTab(); // eslint-disable-next-line\n }, [activeKey, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n useEffect(function () {\n onListHolderResize(); // eslint-disable-next-line\n }, [rtl]); // ========================= Render ========================\n\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = -transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = -transformTop + containerExcludeExtraSizeValue < tabContentSizeValue;\n }\n\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: useComposeRef(ref, containerRef),\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: inkStyle\n })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"];\n// zombieJ: To compatible with `renderTabBar` usage.\nimport * as React from 'react';\nimport TabNavList from '.';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"../TabPanelList/TabPane\";\n// We have to create a TabNavList components.\nexport default function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(TabContext),\n tabs = _React$useContext.tabs;\n\n if (renderTabBar) {\n var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = _objectWithoutProperties(_ref2, _excluded2);\n\n return /*#__PURE__*/React.createElement(TabPane, _extends({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n\n return renderTabBar(tabNavBarProps, TabNavList);\n }\n\n return /*#__PURE__*/React.createElement(TabNavList, restProps);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabPanelList from \"./TabPanelList\";\nimport TabContext from \"./TabContext\";\nimport TabNavListWrapper from \"./TabNavList/Wrapper\";\nimport useAnimateConfig from \"./hooks/useAnimateConfig\";\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n// Used for accessibility\n\nvar uuid = 0;\n\nfunction Tabs(_ref, ref) {\n var _classNames;\n\n var id = _ref.id,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n className = _ref.className,\n items = _ref.items,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n animated = _ref.animated,\n _ref$tabPosition = _ref.tabPosition,\n tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n tabBarGutter = _ref.tabBarGutter,\n tabBarStyle = _ref.tabBarStyle,\n tabBarExtraContent = _ref.tabBarExtraContent,\n locale = _ref.locale,\n moreIcon = _ref.moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n renderTabBar = _ref.renderTabBar,\n onChange = _ref.onChange,\n onTabClick = _ref.onTabClick,\n onTabScroll = _ref.onTabScroll,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && _typeof(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = useAnimateConfig(animated); // ======================== Mobile ========================\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []); // ====================== Active Key ======================\n\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1]; // Reset active key if not exist anymore\n\n\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================\n\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1]; // Async generate id to avoid ssr mapping failed\n\n\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []); // ======================== Events ========================\n\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n\n if (isActiveChanged) {\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n }\n } // ======================== Render ========================\n\n\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName\n });\n\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabNavListWrapper, _extends({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\n\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\n\nif (process.env.NODE_ENV !== 'production') {\n ForwardTabs.displayName = 'Tabs';\n}\n\nexport default ForwardTabs;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nexport default function useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n } // Enable tabPane animation if provide motion\n\n\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n\n mergedAnimated.tabPane = false;\n }\n\n return mergedAnimated;\n}","import Tabs from \"./Tabs\";\nexport default Tabs;","import { getTransitionName } from '../../_util/motion';\nconst motion = {\n motionAppear: false,\n motionEnter: true,\n motionLeave: true\n};\nexport default function useAnimateConfig(prefixCls) {\n let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n inkBar: true,\n tabPane: false\n };\n let mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: true\n };\n } else {\n mergedAnimated = Object.assign({\n inkBar: true\n }, typeof animated === 'object' ? animated : {});\n }\n if (mergedAnimated.tabPane) {\n mergedAnimated.tabPaneMotion = Object.assign(Object.assign({}, motion), {\n motionName: getTransitionName(prefixCls, 'switch')\n });\n }\n return mergedAnimated;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../../_util/warning';\nfunction filter(items) {\n return items.filter(item => item);\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Tabs', 'Tabs.TabPane is deprecated. Please use `items` directly.') : void 0;\n const childrenItems = toArray(children).map(node => {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n const {\n key,\n props\n } = node;\n const _a = props || {},\n {\n tab\n } = _a,\n restProps = __rest(_a, [\"tab\"]);\n const item = Object.assign(Object.assign({\n key: String(key)\n }, restProps), {\n label: tab\n });\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","const TabPane = () => null;\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'DeprecatedTabPane';\n}\nexport default TabPane;","import { initSlideMotion } from '../../style/motion';\nconst genMotionStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return [{\n [componentCls]: {\n [`${componentCls}-switch`]: {\n '&-appear, &-enter': {\n transition: 'none',\n '&-start': {\n opacity: 0\n },\n '&-active': {\n opacity: 1,\n transition: `opacity ${motionDurationSlow}`\n }\n },\n '&-leave': {\n position: 'absolute',\n transition: 'none',\n inset: 0,\n '&-start': {\n opacity: 1\n },\n '&-active': {\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`\n }\n }\n }\n }\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down')]];\n};\nexport default genMotionStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusStyle, resetComponent, textEllipsis } from '../../style';\nimport genMotionStyle from './motion';\nconst genCardStyle = token => {\n const {\n componentCls,\n tabsCardHorizontalPadding,\n tabsCardHeadBackground,\n tabsCardGutter,\n colorSplit\n } = token;\n return {\n [`${componentCls}-card`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: 0,\n padding: tabsCardHorizontalPadding,\n background: tabsCardHeadBackground,\n border: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`\n },\n [`${componentCls}-tab-active`]: {\n color: token.colorPrimary,\n background: token.colorBgContainer\n },\n [`${componentCls}-ink-bar`]: {\n visibility: 'hidden'\n }\n },\n // ========================== Top & Bottom ==========================\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginLeft: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n }\n }\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n },\n [`${componentCls}-tab-active`]: {\n borderBottomColor: token.colorBgContainer\n }\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n },\n [`${componentCls}-tab-active`]: {\n borderTopColor: token.colorBgContainer\n }\n }\n },\n // ========================== Left & Right ==========================\n [`&${componentCls}-left, &${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginTop: `${tabsCardGutter}px`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadiusLG}px 0 0 ${token.borderRadiusLG}px`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderRightColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px 0`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderLeftColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n }\n }\n };\n};\nconst genDropdownStyle = token => {\n const {\n componentCls,\n tabsHoverColor,\n dropdownEdgeChildVerticalPadding\n } = token;\n return {\n [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: token.zIndexPopup,\n display: 'block',\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-dropdown-menu`]: {\n maxHeight: token.tabsDropdownHeight,\n margin: 0,\n padding: `${dropdownEdgeChildVerticalPadding}px 0`,\n overflowX: 'hidden',\n overflowY: 'auto',\n textAlign: {\n _skip_check_: true,\n value: 'left'\n },\n listStyleType: 'none',\n backgroundColor: token.colorBgContainer,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadow,\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n display: 'flex',\n alignItems: 'center',\n minWidth: token.tabsDropdownWidth,\n margin: 0,\n padding: `${token.paddingXXS}px ${token.paddingSM}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '> span': {\n flex: 1,\n whiteSpace: 'nowrap'\n },\n '&-remove': {\n flex: 'none',\n marginLeft: {\n _skip_check_: true,\n value: token.marginSM\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n '&:hover': {\n color: tabsHoverColor\n }\n },\n '&:hover': {\n background: token.controlItemBgHover\n },\n '&-disabled': {\n '&, &:hover': {\n color: token.colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n })\n }\n })\n };\n};\nconst genPositionStyle = token => {\n const {\n componentCls,\n margin,\n colorSplit\n } = token;\n return {\n // ========================== Top & Bottom ==========================\n [`${componentCls}-top, ${componentCls}-bottom`]: {\n flexDirection: 'column',\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n margin: `0 0 ${margin}px 0`,\n '&::before': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n borderBottom: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n content: \"''\"\n },\n [`${componentCls}-ink-bar`]: {\n height: token.lineWidthBold,\n '&-animated': {\n transition: `width ${token.motionDurationSlow}, left ${token.motionDurationSlow},\n right ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-wrap`]: {\n '&::before, &::after': {\n top: 0,\n bottom: 0,\n width: token.controlHeight\n },\n '&::before': {\n left: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowLeft\n },\n '&::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowRight\n },\n [`&${componentCls}-nav-wrap-ping-left::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-right::after`]: {\n opacity: 1\n }\n }\n }\n },\n [`${componentCls}-top`]: {\n [`> ${componentCls}-nav,\n > div > ${componentCls}-nav`]: {\n '&::before': {\n bottom: 0\n },\n [`${componentCls}-ink-bar`]: {\n bottom: 0\n }\n }\n },\n [`${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n marginTop: `${margin}px`,\n marginBottom: 0,\n '&::before': {\n top: 0\n },\n [`${componentCls}-ink-bar`]: {\n top: 0\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n // ========================== Left & Right ==========================\n [`${componentCls}-left, ${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n flexDirection: 'column',\n minWidth: token.controlHeight * 1.25,\n // >>>>>>>>>>> Tab\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px ${token.paddingLG}px`,\n textAlign: 'center'\n },\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n margin: `${token.margin}px 0 0 0`\n },\n // >>>>>>>>>>> Nav\n [`${componentCls}-nav-wrap`]: {\n flexDirection: 'column',\n '&::before, &::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeight\n },\n '&::before': {\n top: 0,\n boxShadow: token.boxShadowTabsOverflowTop\n },\n '&::after': {\n bottom: 0,\n boxShadow: token.boxShadowTabsOverflowBottom\n },\n [`&${componentCls}-nav-wrap-ping-top::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-bottom::after`]: {\n opacity: 1\n }\n },\n // >>>>>>>>>>> Ink Bar\n [`${componentCls}-ink-bar`]: {\n width: token.lineWidthBold,\n '&-animated': {\n transition: `height ${token.motionDurationSlow}, top ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-list, ${componentCls}-nav-operations`]: {\n flex: '1 0 auto',\n flexDirection: 'column'\n }\n }\n },\n [`${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-ink-bar`]: {\n right: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n marginLeft: {\n _skip_check_: true,\n value: `-${token.lineWidth}px`\n },\n borderLeft: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingLeft: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n },\n [`${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n [`${componentCls}-ink-bar`]: {\n left: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0,\n marginRight: {\n _skip_check_: true,\n value: -token.lineWidth\n },\n borderRight: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingRight: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n padding\n } = token;\n return {\n [componentCls]: {\n '&-small': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px 0`,\n fontSize: token.fontSize\n }\n }\n },\n '&-large': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${padding}px 0`,\n fontSize: token.fontSizeLG\n }\n }\n }\n },\n [`${componentCls}-card`]: {\n [`&${componentCls}-small`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXXS * 1.5}px ${padding}px`\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadius}px ${token.borderRadius}px`\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `${token.borderRadius}px ${token.borderRadius}px 0 0`\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadius}px ${token.borderRadius}px 0`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadius}px 0 0 ${token.borderRadius}px`\n }\n }\n }\n },\n [`&${componentCls}-large`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: `${token.paddingXS}px ${padding}px ${token.paddingXXS * 1.5}px`\n }\n }\n }\n }\n };\n};\nconst genTabStyle = token => {\n const {\n componentCls,\n tabsActiveColor,\n tabsHoverColor,\n iconCls,\n tabsHorizontalGutter\n } = token;\n const tabCls = `${componentCls}-tab`;\n return {\n [tabCls]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n padding: `${token.paddingSM}px 0`,\n fontSize: `${token.fontSize}px`,\n background: 'transparent',\n border: 0,\n outline: 'none',\n cursor: 'pointer',\n '&-btn, &-remove': Object.assign({\n '&:focus:not(:focus-visible), &:active': {\n color: tabsActiveColor\n }\n }, genFocusStyle(token)),\n '&-btn': {\n outline: 'none',\n transition: 'all 0.3s'\n },\n '&-remove': {\n flex: 'none',\n marginRight: {\n _skip_check_: true,\n value: -token.marginXXS\n },\n marginLeft: {\n _skip_check_: true,\n value: token.marginXS\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n '&:hover': {\n color: tabsHoverColor\n },\n [`&${tabCls}-active ${tabCls}-btn`]: {\n color: token.colorPrimary,\n textShadow: token.tabsActiveTextShadow\n },\n [`&${tabCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${tabCls}-disabled ${tabCls}-btn, &${tabCls}-disabled ${componentCls}-remove`]: {\n '&:focus, &:active': {\n color: token.colorTextDisabled\n }\n },\n [`& ${tabCls}-remove ${iconCls}`]: {\n margin: 0\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: token.marginSM\n }\n }\n },\n [`${tabCls} + ${tabCls}`]: {\n margin: {\n _skip_check_: true,\n value: `0 0 0 ${tabsHorizontalGutter}px`\n }\n }\n };\n};\nconst genRtlStyle = token => {\n const {\n componentCls,\n tabsHorizontalGutter,\n iconCls,\n tabsCardGutter\n } = token;\n const rtlCls = `${componentCls}-rtl`;\n return {\n [rtlCls]: {\n direction: 'rtl',\n [`${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: {\n _skip_check_: true,\n value: `0 0 0 ${tabsHorizontalGutter}px`\n },\n [`${componentCls}-tab:last-of-type`]: {\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: 0\n },\n marginLeft: {\n _skip_check_: true,\n value: `${token.marginSM}px`\n }\n },\n [`${componentCls}-tab-remove`]: {\n marginRight: {\n _skip_check_: true,\n value: `${token.marginXS}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: `-${token.marginXXS}px`\n },\n [iconCls]: {\n margin: 0\n }\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav`]: {\n order: 1\n },\n [`> ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav`]: {\n order: 0\n },\n [`> ${componentCls}-content-holder`]: {\n order: 1\n }\n },\n // ====================== Card ======================\n [`&${componentCls}-card${componentCls}-top, &${componentCls}-card${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginRight: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n }\n }\n }\n },\n [`${componentCls}-dropdown-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-menu-item`]: {\n [`${componentCls}-dropdown-rtl`]: {\n textAlign: {\n _skip_check_: true,\n value: 'right'\n }\n }\n }\n };\n};\nconst genTabsStyle = token => {\n const {\n componentCls,\n tabsCardHorizontalPadding,\n tabsCardHeight,\n tabsCardGutter,\n tabsHoverColor,\n tabsActiveColor,\n colorSplit\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n // ========================== Navigation ==========================\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n position: 'relative',\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n [`${componentCls}-nav-wrap`]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n alignSelf: 'stretch',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n transform: 'translate(0)',\n // >>>>> Ping shadow\n '&::before, &::after': {\n position: 'absolute',\n zIndex: 1,\n opacity: 0,\n transition: `opacity ${token.motionDurationSlow}`,\n content: \"''\",\n pointerEvents: 'none'\n }\n },\n [`${componentCls}-nav-list`]: {\n position: 'relative',\n display: 'flex',\n transition: `opacity ${token.motionDurationSlow}`\n },\n // >>>>>>>> Operations\n [`${componentCls}-nav-operations`]: {\n display: 'flex',\n alignSelf: 'stretch'\n },\n [`${componentCls}-nav-operations-hidden`]: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none'\n },\n [`${componentCls}-nav-more`]: {\n position: 'relative',\n padding: tabsCardHorizontalPadding,\n background: 'transparent',\n border: 0,\n '&::after': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: 0,\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeightLG / 8,\n transform: 'translateY(100%)',\n content: \"''\"\n }\n },\n [`${componentCls}-nav-add`]: Object.assign({\n minWidth: `${tabsCardHeight}px`,\n marginLeft: {\n _skip_check_: true,\n value: `${tabsCardGutter}px`\n },\n padding: `0 ${token.paddingXS}px`,\n background: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} ${colorSplit}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`,\n outline: 'none',\n cursor: 'pointer',\n color: token.colorText,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&:hover': {\n color: tabsHoverColor\n },\n '&:active, &:focus:not(:focus-visible)': {\n color: tabsActiveColor\n }\n }, genFocusStyle(token))\n },\n [`${componentCls}-extra-content`]: {\n flex: 'none'\n },\n // ============================ InkBar ============================\n [`${componentCls}-ink-bar`]: {\n position: 'absolute',\n background: token.colorPrimary,\n pointerEvents: 'none'\n }\n }), genTabStyle(token)), {\n // =========================== TabPanes ===========================\n [`${componentCls}-content`]: {\n position: 'relative',\n width: '100%'\n },\n [`${componentCls}-content-holder`]: {\n flex: 'auto',\n minWidth: 0,\n minHeight: 0\n },\n [`${componentCls}-tabpane`]: {\n outline: 'none',\n '&-hidden': {\n display: 'none'\n }\n }\n }),\n [`${componentCls}-centered`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-nav-wrap`]: {\n [`&:not([class*='${componentCls}-nav-wrap-ping'])`]: {\n justifyContent: 'center'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tabs', token => {\n const tabsCardHeight = token.controlHeightLG;\n const tabsToken = mergeToken(token, {\n tabsHoverColor: token.colorPrimaryHover,\n tabsActiveColor: token.colorPrimaryActive,\n tabsCardHorizontalPadding: `${(tabsCardHeight - Math.round(token.fontSize * token.lineHeight)) / 2 - token.lineWidth}px ${token.padding}px`,\n tabsCardHeight,\n tabsCardGutter: token.marginXXS / 2,\n tabsHorizontalGutter: 32,\n tabsCardHeadBackground: token.colorFillAlter,\n dropdownEdgeChildVerticalPadding: token.paddingXXS,\n tabsActiveTextShadow: '0 0 0.25px currentcolor',\n tabsDropdownHeight: 200,\n tabsDropdownWidth: 120\n });\n return [genSizeStyle(tabsToken), genRtlStyle(tabsToken), genPositionStyle(tabsToken), genDropdownStyle(tabsToken), genCardStyle(tabsToken), genTabsStyle(tabsToken), genMotionStyle(tabsToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50\n}));","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport classNames from 'classnames';\nimport RcTabs from 'rc-tabs';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport warning from '../_util/warning';\nimport useAnimateConfig from './hooks/useAnimateConfig';\nimport useLegacyItems from './hooks/useLegacyItems';\nimport TabPane from './TabPane';\nimport useStyle from './style';\nfunction Tabs(_a) {\n var {\n type,\n className,\n size: propSize,\n onEdit,\n hideAdd,\n centered,\n addIcon,\n popupClassName,\n children,\n items,\n animated\n } = _a,\n props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\", \"popupClassName\", \"children\", \"items\", \"animated\"]);\n const {\n prefixCls: customizePrefixCls,\n moreIcon = /*#__PURE__*/React.createElement(EllipsisOutlined, null)\n } = props;\n const {\n direction,\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: (editType, _ref) => {\n let {\n key,\n event\n } = _ref;\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(editType === 'add' ? event : key, editType);\n },\n removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n showAdd: hideAdd !== true\n };\n }\n const rootPrefixCls = getPrefixCls();\n process.env.NODE_ENV !== \"production\" ? warning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.') : void 0;\n const mergedItems = useLegacyItems(items, children);\n const mergedAnimated = useAnimateConfig(prefixCls, animated);\n const contextSize = React.useContext(SizeContext);\n const size = propSize !== undefined ? propSize : contextSize;\n return wrapSSR( /*#__PURE__*/React.createElement(RcTabs, Object.assign({\n direction: direction,\n getPopupContainer: getPopupContainer,\n moreTransitionName: `${rootPrefixCls}-slide-up`\n }, props, {\n items: mergedItems,\n className: classNames({\n [`${prefixCls}-${size}`]: size,\n [`${prefixCls}-card`]: ['card', 'editable-card'].includes(type),\n [`${prefixCls}-editable-card`]: type === 'editable-card',\n [`${prefixCls}-centered`]: centered\n }, className, hashId),\n popupClassName: classNames(popupClassName, hashId),\n editable: editable,\n moreIcon: moreIcon,\n prefixCls: prefixCls,\n animated: mergedAnimated\n })));\n}\nTabs.TabPane = TabPane;\nif (process.env.NODE_ENV !== 'production') {\n Tabs.displayName = 'Tabs';\n}\nexport default Tabs;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nconst Grid = _a => {\n var {\n prefixCls,\n className,\n hoverable = true\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefix = getPrefixCls('card', prefixCls);\n const classString = classNames(`${prefix}-grid`, className, {\n [`${prefix}-grid-hoverable`]: hoverable\n });\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, props, {\n className: classString\n }));\n};\nexport default Grid;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { clearFix, resetComponent, textEllipsis } from '../../style';\n// ============================== Styles ==============================\n// ============================== Head ==============================\nconst genCardHeadStyle = token => {\n const {\n antCls,\n componentCls,\n cardHeadHeight,\n cardPaddingBase,\n cardHeadTabsMarginBottom\n } = token;\n return Object.assign(Object.assign({\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n minHeight: cardHeadHeight,\n marginBottom: -1,\n padding: `0 ${cardPaddingBase}px`,\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.fontSizeLG,\n background: 'transparent',\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n }, clearFix()), {\n '&-wrapper': {\n width: '100%',\n display: 'flex',\n alignItems: 'center'\n },\n '&-title': Object.assign(Object.assign({\n display: 'inline-block',\n flex: 1\n }, textEllipsis), {\n [`\n > ${componentCls}-typography,\n > ${componentCls}-typography-edit-content\n `]: {\n insetInlineStart: 0,\n marginTop: 0,\n marginBottom: 0\n }\n }),\n [`${antCls}-tabs-top`]: {\n clear: 'both',\n marginBottom: cardHeadTabsMarginBottom,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n '&-bar': {\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`\n }\n }\n });\n};\n// ============================== Grid ==============================\nconst genCardGridStyle = token => {\n const {\n cardPaddingBase,\n colorBorderSecondary,\n cardShadow,\n lineWidth\n } = token;\n return {\n width: '33.33%',\n padding: cardPaddingBase,\n border: 0,\n borderRadius: 0,\n boxShadow: `\n ${lineWidth}px 0 0 0 ${colorBorderSecondary},\n 0 ${lineWidth}px 0 0 ${colorBorderSecondary},\n ${lineWidth}px ${lineWidth}px 0 0 ${colorBorderSecondary},\n ${lineWidth}px 0 0 0 ${colorBorderSecondary} inset,\n 0 ${lineWidth}px 0 0 ${colorBorderSecondary} inset;\n `,\n transition: `all ${token.motionDurationMid}`,\n '&-hoverable:hover': {\n position: 'relative',\n zIndex: 1,\n boxShadow: cardShadow\n }\n };\n};\n// ============================== Actions ==============================\nconst genCardActionsStyle = token => {\n const {\n componentCls,\n iconCls,\n cardActionsLiMargin,\n cardActionsIconSize,\n colorBorderSecondary\n } = token;\n return Object.assign(Object.assign({\n margin: 0,\n padding: 0,\n listStyle: 'none',\n background: token.colorBgContainer,\n borderTop: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n display: 'flex',\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px `\n }, clearFix()), {\n '& > li': {\n margin: cardActionsLiMargin,\n color: token.colorTextDescription,\n textAlign: 'center',\n '> span': {\n position: 'relative',\n display: 'block',\n minWidth: token.cardActionsIconSize * 2,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimary,\n transition: `color ${token.motionDurationMid}`\n },\n [`a:not(${componentCls}-btn), > ${iconCls}`]: {\n display: 'inline-block',\n width: '100%',\n color: token.colorTextDescription,\n lineHeight: `${token.fontSize * token.lineHeight}px`,\n transition: `color ${token.motionDurationMid}`,\n '&:hover': {\n color: token.colorPrimary\n }\n },\n [`> ${iconCls}`]: {\n fontSize: cardActionsIconSize,\n lineHeight: `${cardActionsIconSize * token.lineHeight}px`\n }\n },\n '&:not(:last-child)': {\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`\n }\n }\n });\n};\n// ============================== Meta ==============================\nconst genCardMetaStyle = token => Object.assign(Object.assign({\n margin: `-${token.marginXXS}px 0`,\n display: 'flex'\n}, clearFix()), {\n '&-avatar': {\n paddingInlineEnd: token.padding\n },\n '&-detail': {\n overflow: 'hidden',\n flex: 1,\n '> div:not(:last-child)': {\n marginBottom: token.marginXS\n }\n },\n '&-title': Object.assign({\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: token.fontSizeLG\n }, textEllipsis),\n '&-description': {\n color: token.colorTextDescription\n }\n});\n// ============================== Inner ==============================\nconst genCardTypeInnerStyle = token => {\n const {\n componentCls,\n cardPaddingBase,\n colorFillAlter\n } = token;\n return {\n [`${componentCls}-head`]: {\n padding: `0 ${cardPaddingBase}px`,\n background: colorFillAlter,\n '&-title': {\n fontSize: token.fontSize\n }\n },\n [`${componentCls}-body`]: {\n padding: `${token.padding}px ${cardPaddingBase}px`\n }\n };\n};\n// ============================== Loading ==============================\nconst genCardLoadingStyle = token => {\n const {\n componentCls\n } = token;\n return {\n overflow: 'hidden',\n [`${componentCls}-body`]: {\n userSelect: 'none'\n }\n };\n};\n// ============================== Basic ==============================\nconst genCardStyle = token => {\n const {\n componentCls,\n cardShadow,\n cardHeadPadding,\n colorBorderSecondary,\n boxShadow,\n cardPaddingBase\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n background: token.colorBgContainer,\n borderRadius: token.borderRadiusLG,\n [`&:not(${componentCls}-bordered)`]: {\n boxShadow\n },\n [`${componentCls}-head`]: genCardHeadStyle(token),\n [`${componentCls}-extra`]: {\n // https://stackoverflow.com/a/22429853/3040605\n marginInlineStart: 'auto',\n color: '',\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`${componentCls}-body`]: Object.assign({\n padding: cardPaddingBase,\n borderRadius: ` 0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n }, clearFix()),\n [`${componentCls}-grid`]: genCardGridStyle(token),\n [`${componentCls}-cover`]: {\n '> *': {\n display: 'block',\n width: '100%'\n },\n img: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n }\n },\n [`${componentCls}-actions`]: genCardActionsStyle(token),\n [`${componentCls}-meta`]: genCardMetaStyle(token)\n }),\n [`${componentCls}-bordered`]: {\n border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n [`${componentCls}-cover`]: {\n marginTop: -1,\n marginInlineStart: -1,\n marginInlineEnd: -1\n }\n },\n [`${componentCls}-hoverable`]: {\n cursor: 'pointer',\n transition: `box-shadow ${token.motionDurationMid}, border-color ${token.motionDurationMid}`,\n '&:hover': {\n borderColor: 'transparent',\n boxShadow: cardShadow\n }\n },\n [`${componentCls}-contain-grid`]: {\n [`${componentCls}-body`]: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n [`&:not(${componentCls}-loading) ${componentCls}-body`]: {\n marginBlockStart: -token.lineWidth,\n marginInlineStart: -token.lineWidth,\n padding: 0\n }\n },\n [`${componentCls}-contain-tabs`]: {\n [`> ${componentCls}-head`]: {\n [`${componentCls}-head-title, ${componentCls}-extra`]: {\n paddingTop: cardHeadPadding\n }\n }\n },\n [`${componentCls}-type-inner`]: genCardTypeInnerStyle(token),\n [`${componentCls}-loading`]: genCardLoadingStyle(token),\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\n// ============================== Size ==============================\nconst genCardSizeStyle = token => {\n const {\n componentCls,\n cardPaddingSM,\n cardHeadHeightSM\n } = token;\n return {\n [`${componentCls}-small`]: {\n [`> ${componentCls}-head`]: {\n minHeight: cardHeadHeightSM,\n padding: `0 ${cardPaddingSM}px`,\n fontSize: token.fontSize,\n [`> ${componentCls}-head-wrapper`]: {\n [`> ${componentCls}-extra`]: {\n fontSize: token.fontSize\n }\n }\n },\n [`> ${componentCls}-body`]: {\n padding: cardPaddingSM\n }\n },\n [`${componentCls}-small${componentCls}-contain-tabs`]: {\n [`> ${componentCls}-head`]: {\n [`${componentCls}-head-title, ${componentCls}-extra`]: {\n minHeight: cardHeadHeightSM,\n paddingTop: 0,\n display: 'flex',\n alignItems: 'center'\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Card', token => {\n const cardToken = mergeToken(token, {\n cardShadow: token.boxShadowCard,\n cardHeadHeight: token.fontSizeLG * token.lineHeightLG + token.padding * 2,\n cardHeadHeightSM: token.fontSize * token.lineHeight + token.paddingXS * 2,\n cardHeadPadding: token.padding,\n cardPaddingBase: token.paddingLG,\n cardHeadTabsMarginBottom: -token.padding - token.lineWidth,\n cardActionsLiMargin: `${token.paddingSM}px 0`,\n cardActionsIconSize: token.fontSize,\n cardPaddingSM: 12 // Fixed padding.\n });\n\n return [\n // Style\n genCardStyle(cardToken),\n // Size\n genCardSizeStyle(cardToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport Skeleton from '../skeleton';\nimport Tabs from '../tabs';\nimport Grid from './Grid';\nimport useStyle from './style';\nfunction getAction(actions) {\n const actionList = actions.map((action, index) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: `${100 / actions.length}%`\n },\n key: `action-${index}`\n }, /*#__PURE__*/React.createElement(\"span\", null, action)));\n return actionList;\n}\nconst Card = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const size = React.useContext(SizeContext);\n const onTabChange = key => {\n var _a;\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n const isContainGrid = () => {\n let containGrid;\n React.Children.forEach(props.children, element => {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n const {\n prefixCls: customizePrefixCls,\n className,\n extra,\n headStyle = {},\n bodyStyle = {},\n title,\n loading,\n bordered = true,\n size: customizeSize,\n type,\n cover,\n actions,\n tabList,\n children,\n activeTabKey,\n defaultActiveTabKey,\n tabBarExtraContent,\n hoverable,\n tabProps = {}\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const loadingBlock = /*#__PURE__*/React.createElement(Skeleton, {\n loading: true,\n active: true,\n paragraph: {\n rows: 4\n },\n title: false\n }, children);\n const hasActiveTabKey = activeTabKey !== undefined;\n const extraProps = Object.assign(Object.assign({}, tabProps), {\n [hasActiveTabKey ? 'activeKey' : 'defaultActiveKey']: hasActiveTabKey ? activeTabKey : defaultActiveTabKey,\n tabBarExtraContent\n });\n let head;\n const tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, Object.assign({\n size: \"large\"\n }, extraProps, {\n className: `${prefixCls}-head-tabs`,\n onChange: onTabChange,\n items: tabList.map(item => {\n var _a;\n return {\n label: item.tab,\n key: item.key,\n disabled: (_a = item.disabled) !== null && _a !== void 0 ? _a : false\n };\n })\n })) : null;\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head`,\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head-wrapper`\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-head-title`\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-extra`\n }, extra)), tabs);\n }\n const coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-cover`\n }, cover) : null;\n const body = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body`,\n style: bodyStyle\n }, loading ? loadingBlock : children);\n const actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: `${prefixCls}-actions`\n }, getAction(actions)) : null;\n const divProps = omit(others, ['onTabChange']);\n const mergedSize = customizeSize || size;\n const classString = classNames(prefixCls, {\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-hoverable`]: hoverable,\n [`${prefixCls}-contain-grid`]: isContainGrid(),\n [`${prefixCls}-contain-tabs`]: tabList && tabList.length,\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-type-${type}`]: !!type,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref\n }, divProps, {\n className: classString\n }), head, coverDom, body, actionDom));\n});\nexport default Card;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nconst Meta = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n avatar,\n title,\n description\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('card', customizePrefixCls);\n const classString = classNames(`${prefixCls}-meta`, className);\n const avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-avatar`\n }, avatar) : null;\n const titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-title`\n }, title) : null;\n const descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-description`\n }, description) : null;\n const MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-meta-detail`\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n};\nexport default Meta;","import InternalCard from './Card';\nimport Grid from './Grid';\nimport Meta from './Meta';\nconst Card = InternalCard;\nCard.Grid = Grid;\nCard.Meta = Meta;\nif (process.env.NODE_ENV !== 'production') {\n Card.displayName = 'Card';\n}\nexport default Card;","export var EXPAND_COLUMN = {};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nexport function createContext(defaultValue) {\n var Context = /*#__PURE__*/React.createContext(undefined);\n\n var Provider = function Provider(_ref) {\n var value = _ref.value,\n children = _ref.children;\n var valueRef = React.useRef(value);\n valueRef.current = value;\n\n var _React$useState = React.useState(function () {\n return {\n getValue: function getValue() {\n return valueRef.current;\n },\n listeners: new Set()\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n context = _React$useState2[0];\n\n useLayoutEffect(function () {\n unstable_batchedUpdates(function () {\n context.listeners.forEach(function (listener) {\n listener(value);\n });\n });\n }, [value]);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: context\n }, children);\n };\n\n return {\n Context: Context,\n Provider: Provider,\n defaultValue: defaultValue\n };\n}\n/** e.g. useSelect(userContext) => user */\n\nexport function useContext(holder, selector) {\n var eventSelector = useEvent(typeof selector === 'function' ? selector : function (ctx) {\n if (selector === undefined) {\n return ctx;\n }\n\n if (!Array.isArray(selector)) {\n return ctx[selector];\n }\n\n var obj = {};\n selector.forEach(function (key) {\n obj[key] = ctx[key];\n });\n return obj;\n });\n var context = React.useContext(holder === null || holder === void 0 ? void 0 : holder.Context);\n\n var _ref2 = context || {},\n listeners = _ref2.listeners,\n getValue = _ref2.getValue;\n\n var valueRef = React.useRef();\n valueRef.current = eventSelector(context ? getValue() : holder === null || holder === void 0 ? void 0 : holder.defaultValue);\n\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n forceUpdate = _React$useState4[1];\n\n useLayoutEffect(function () {\n if (!context) {\n return;\n }\n\n function trigger(nextValue) {\n var nextSelectorValue = eventSelector(nextValue);\n\n if (!isEqual(valueRef.current, nextSelectorValue, true)) {\n forceUpdate({});\n }\n }\n\n listeners.add(trigger);\n return function () {\n listeners.delete(trigger);\n };\n }, [context]);\n return valueRef.current;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar ImmutableContext = /*#__PURE__*/React.createContext(0);\n\n/**\n * Get render update mark by `makeImmutable` root.\n * Do not deps on the return value as render times\n * but only use for `useMemo` or `useCallback` deps.\n */\nexport function useImmutableMark() {\n return React.useContext(ImmutableContext);\n}\n/**\n * Wrapped Component will be marked as Immutable.\n * When Component parent trigger render,\n * it will notice children component (use with `responseImmutable`) node that parent has updated.\n\n * @param Component Passed Component\n * @param triggerRender Customize trigger `responseImmutable` children re-render logic. Default will always trigger re-render when this component re-render.\n */\n\nexport function makeImmutable(Component, shouldTriggerRender) {\n var refAble = supportRef(Component);\n\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n var renderTimesRef = React.useRef(0);\n var prevProps = React.useRef(props);\n\n if ( // Always trigger re-render if not provide `notTriggerRender`\n !shouldTriggerRender || shouldTriggerRender(prevProps.current, props)) {\n renderTimesRef.current += 1;\n }\n\n prevProps.current = props;\n return /*#__PURE__*/React.createElement(ImmutableContext.Provider, {\n value: renderTimesRef.current\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps)));\n };\n\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableRoot(\".concat(Component.displayName || Component.name, \")\");\n }\n\n return refAble ? /*#__PURE__*/React.forwardRef(ImmutableComponent) : ImmutableComponent;\n}\n/**\n * Wrapped Component with `React.memo`.\n * But will rerender when parent with `makeImmutable` rerender.\n */\n\nexport function responseImmutable(Component, propsAreEqual) {\n var refAble = supportRef(Component);\n\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n useImmutableMark();\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n };\n\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableResponse(\".concat(Component.displayName || Component.name, \")\");\n }\n\n return refAble ? /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(ImmutableComponent), propsAreEqual) : /*#__PURE__*/React.memo(ImmutableComponent, propsAreEqual);\n}","import { createContext } from '@rc-component/context';\nvar TableContext = createContext();\nexport default TableContext;","/* istanbul ignore file */\nimport * as React from 'react';\n\nfunction useRenderTimes(props, debug) {\n // Render times\n var timesRef = React.useRef(0);\n timesRef.current += 1; // Props changed\n\n var propsRef = React.useRef(props);\n var keys = [];\n Object.keys(props || {}).map(function (key) {\n var _propsRef$current;\n\n if ((props === null || props === void 0 ? void 0 : props[key]) !== ((_propsRef$current = propsRef.current) === null || _propsRef$current === void 0 ? void 0 : _propsRef$current[key])) {\n keys.push(key);\n }\n });\n propsRef.current = props; // Cache keys since React rerender may cause it lost\n\n var keysRef = React.useRef([]);\n\n if (keys.length) {\n keysRef.current = keys;\n }\n\n React.useDebugValue(timesRef.current);\n React.useDebugValue(keysRef.current.join(', '));\n\n if (debug) {\n console.log(\"\".concat(debug, \":\"), timesRef.current, keysRef.current);\n }\n\n return timesRef.current;\n}\n\nexport default process.env.NODE_ENV !== 'production' ? useRenderTimes : function () {};\nexport var RenderBlock = /*#__PURE__*/React.memo(function () {\n var times = useRenderTimes();\n return /*#__PURE__*/React.createElement(\"h1\", null, \"Render Times: \", times);\n});\nRenderBlock.displayName = 'RenderBlock';","import * as React from 'react';\n// TODO: Remove when use `responsiveImmutable`\nvar PerfContext = /*#__PURE__*/React.createContext({\n renderWithProps: false\n});\nexport default PerfContext;","var INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\n\nfunction toArray(arr) {\n if (arr === undefined || arr === null) {\n return [];\n }\n\n return Array.isArray(arr) ? arr : [arr];\n}\n\nexport function getColumnsKey(columns) {\n var columnKeys = [];\n var keys = {};\n columns.forEach(function (column) {\n var _ref = column || {},\n key = _ref.key,\n dataIndex = _ref.dataIndex;\n\n var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n\n while (keys[mergedKey]) {\n mergedKey = \"\".concat(mergedKey, \"_next\");\n }\n\n keys[mergedKey] = true;\n columnKeys.push(mergedKey);\n });\n return columnKeys;\n}\nexport function validateValue(val) {\n return val !== null && val !== undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { useImmutableMark } from '@rc-component/context';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport { validateValue } from \"../utils/valueUtil\";\n\nfunction isRenderCell(data) {\n return data && _typeof(data) === 'object' && !Array.isArray(data) && ! /*#__PURE__*/React.isValidElement(data);\n}\n\nexport default function useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate) {\n // TODO: Remove this after next major version\n var perfRecord = React.useContext(PerfContext);\n var mark = useImmutableMark(); // ======================== Render ========================\n\n var retData = useMemo(function () {\n if (validateValue(children)) {\n return [children];\n }\n\n var path = dataIndex === null || dataIndex === undefined || dataIndex === '' ? [] : Array.isArray(dataIndex) ? dataIndex : [dataIndex];\n var value = getValue(record, path); // Customize render node\n\n var returnChildNode = value;\n var returnCellProps = undefined;\n\n if (render) {\n var renderData = render(value, record, renderIndex);\n\n if (isRenderCell(renderData)) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`columns.render` return cell props is deprecated with perf issue, please use `onCell` instead.');\n }\n\n returnChildNode = renderData.children;\n returnCellProps = renderData.props;\n perfRecord.renderWithProps = true;\n } else {\n returnChildNode = renderData;\n }\n }\n\n return [returnChildNode, returnCellProps];\n }, [// Force update deps\n mark, // Normal deps\n record, children, dataIndex, render, renderIndex], function (prev, next) {\n if (shouldCellUpdate) {\n var _prev = _slicedToArray(prev, 2),\n prevRecord = _prev[1];\n\n var _next = _slicedToArray(next, 2),\n nextRecord = _next[1];\n\n return shouldCellUpdate(nextRecord, prevRecord);\n } // Legacy mode should always update\n\n\n if (perfRecord.renderWithProps) {\n return true;\n }\n\n return !isEqual(prev, next, true);\n });\n return retData;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport useCellRender from \"./useCellRender\";\nimport useHoverState from \"./useHoverState\";\n\nvar getTitleFromCellRenderChildren = function getTitleFromCellRenderChildren(_ref) {\n var ellipsis = _ref.ellipsis,\n rowType = _ref.rowType,\n children = _ref.children;\n var title;\n var ellipsisConfig = ellipsis === true ? {\n showTitle: true\n } : ellipsis;\n\n if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n if (typeof children === 'string' || typeof children === 'number') {\n title = children.toString();\n } else if ( /*#__PURE__*/React.isValidElement(children) && typeof children.props.children === 'string') {\n title = children.props.children;\n }\n }\n\n return title;\n};\n\nfunction Cell(props) {\n var _ref2, _ref3, _legacyCellProps$colS, _ref4, _ref5, _legacyCellProps$rowS, _additionalProps$titl, _classNames;\n\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var Component = props.component,\n children = props.children,\n ellipsis = props.ellipsis,\n scope = props.scope,\n prefixCls = props.prefixCls,\n className = props.className,\n align = props.align,\n record = props.record,\n render = props.render,\n dataIndex = props.dataIndex,\n renderIndex = props.renderIndex,\n shouldCellUpdate = props.shouldCellUpdate,\n index = props.index,\n rowType = props.rowType,\n colSpan = props.colSpan,\n rowSpan = props.rowSpan,\n fixLeft = props.fixLeft,\n fixRight = props.fixRight,\n firstFixLeft = props.firstFixLeft,\n lastFixLeft = props.lastFixLeft,\n firstFixRight = props.firstFixRight,\n lastFixRight = props.lastFixRight,\n appendNode = props.appendNode,\n _props$additionalProp = props.additionalProps,\n additionalProps = _props$additionalProp === void 0 ? {} : _props$additionalProp,\n isSticky = props.isSticky;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n var _useContext = useContext(TableContext, ['supportSticky', 'allColumnsFixedLeft']),\n supportSticky = _useContext.supportSticky,\n allColumnsFixedLeft = _useContext.allColumnsFixedLeft; // ====================== Value =======================\n\n\n var _useCellRender = useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate),\n _useCellRender2 = _slicedToArray(_useCellRender, 2),\n childNode = _useCellRender2[0],\n legacyCellProps = _useCellRender2[1]; // ====================== Fixed =======================\n\n\n var fixedStyle = {};\n var isFixLeft = typeof fixLeft === 'number' && supportSticky;\n var isFixRight = typeof fixRight === 'number' && supportSticky;\n\n if (isFixLeft) {\n fixedStyle.position = 'sticky';\n fixedStyle.left = fixLeft;\n }\n\n if (isFixRight) {\n fixedStyle.position = 'sticky';\n fixedStyle.right = fixRight;\n } // ================ RowSpan & ColSpan =================\n\n\n var mergedColSpan = (_ref2 = (_ref3 = (_legacyCellProps$colS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.colSpan) !== null && _legacyCellProps$colS !== void 0 ? _legacyCellProps$colS : colSpan) !== null && _ref3 !== void 0 ? _ref3 : additionalProps.colSpan) !== null && _ref2 !== void 0 ? _ref2 : 1;\n var mergedRowSpan = (_ref4 = (_ref5 = (_legacyCellProps$rowS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.rowSpan) !== null && _legacyCellProps$rowS !== void 0 ? _legacyCellProps$rowS : rowSpan) !== null && _ref5 !== void 0 ? _ref5 : additionalProps.rowSpan) !== null && _ref4 !== void 0 ? _ref4 : 1; // ====================== Hover =======================\n\n var _useHoverState = useHoverState(index, mergedRowSpan),\n _useHoverState2 = _slicedToArray(_useHoverState, 2),\n hovering = _useHoverState2[0],\n onHover = _useHoverState2[1];\n\n var onMouseEnter = function onMouseEnter(event) {\n var _additionalProps$onMo;\n\n if (record) {\n onHover(index, index + mergedRowSpan - 1);\n }\n\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo = additionalProps.onMouseEnter) === null || _additionalProps$onMo === void 0 ? void 0 : _additionalProps$onMo.call(additionalProps, event);\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n var _additionalProps$onMo2;\n\n if (record) {\n onHover(-1, -1);\n }\n\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo2 = additionalProps.onMouseLeave) === null || _additionalProps$onMo2 === void 0 ? void 0 : _additionalProps$onMo2.call(additionalProps, event);\n }; // ====================== Render ======================\n\n\n if (mergedColSpan === 0 || mergedRowSpan === 0) {\n return null;\n } // >>>>> Title\n\n\n var title = (_additionalProps$titl = additionalProps.title) !== null && _additionalProps$titl !== void 0 ? _additionalProps$titl : getTitleFromCellRenderChildren({\n rowType: rowType,\n ellipsis: ellipsis,\n children: childNode\n }); // >>>>> ClassName\n\n var mergedClassName = classNames(cellPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left\"), isFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-first\"), firstFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-last\"), lastFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-all\"), lastFixLeft && allColumnsFixedLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right\"), isFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-first\"), firstFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-last\"), lastFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-ellipsis\"), ellipsis), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-with-append\"), appendNode), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-sticky\"), (isFixLeft || isFixRight) && isSticky && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-row-hover\"), !legacyCellProps && hovering), _classNames), additionalProps.className, legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.className); // >>>>> Style\n\n var alignStyle = {};\n\n if (align) {\n alignStyle.textAlign = align;\n }\n\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, additionalProps.style), alignStyle), fixedStyle), legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.style); // >>>>> Children Node\n\n\n var mergedChildNode = childNode; // Not crash if final `childNode` is not validate ReactNode\n\n if (_typeof(mergedChildNode) === 'object' && !Array.isArray(mergedChildNode) && ! /*#__PURE__*/React.isValidElement(mergedChildNode)) {\n mergedChildNode = null;\n }\n\n if (ellipsis && (lastFixLeft || firstFixRight)) {\n mergedChildNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(cellPrefixCls, \"-content\")\n }, mergedChildNode);\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, legacyCellProps, additionalProps, {\n className: mergedClassName,\n style: mergedStyle // A11y\n ,\n title: title,\n scope: scope // Hover\n ,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave //Span\n ,\n colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null\n }), appendNode, mergedChildNode);\n}\n\nexport default /*#__PURE__*/React.memo(Cell);","import { useContext } from '@rc-component/context';\nimport TableContext from \"../context/TableContext\";\n\n/** Check if cell is in hover range */\nfunction inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {\n var cellEndRow = cellStartRow + cellRowSpan - 1;\n return cellStartRow <= endRow && cellEndRow >= startRow;\n}\n\nexport default function useHoverState(rowIndex, rowSpan) {\n return useContext(TableContext, function (ctx) {\n var hovering = inHoverRange(rowIndex, rowSpan || 1, ctx.hoverStartRow, ctx.hoverEndRow);\n return [hovering, ctx.onHover];\n });\n}","export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction, curColumns) {\n var startColumn = columns[colStart] || {};\n var endColumn = columns[colEnd] || {};\n var fixLeft;\n var fixRight;\n\n if (startColumn.fixed === 'left') {\n fixLeft = stickyOffsets.left[colStart];\n } else if (endColumn.fixed === 'right') {\n fixRight = stickyOffsets.right[colEnd];\n }\n\n var lastFixLeft = false;\n var firstFixRight = false;\n var lastFixRight = false;\n var firstFixLeft = false;\n var nextColumn = columns[colEnd + 1];\n var prevColumn = columns[colStart - 1]; // no children only\n\n var canLastFix = !(curColumns !== null && curColumns !== void 0 && curColumns.children);\n\n if (direction === 'rtl') {\n if (fixLeft !== undefined) {\n var prevFixLeft = prevColumn && prevColumn.fixed === 'left';\n firstFixLeft = !prevFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var nextFixRight = nextColumn && nextColumn.fixed === 'right';\n lastFixRight = !nextFixRight && canLastFix;\n }\n } else if (fixLeft !== undefined) {\n var nextFixLeft = nextColumn && nextColumn.fixed === 'left';\n lastFixLeft = !nextFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var prevFixRight = prevColumn && prevColumn.fixed === 'right';\n firstFixRight = !prevFixRight && canLastFix;\n }\n\n return {\n fixLeft: fixLeft,\n fixRight: fixRight,\n lastFixLeft: lastFixLeft,\n firstFixRight: firstFixRight,\n lastFixRight: lastFixRight,\n firstFixLeft: firstFixLeft,\n isSticky: stickyOffsets.isSticky\n };\n}","import * as React from 'react';\nvar SummaryContext = /*#__PURE__*/React.createContext({});\nexport default SummaryContext;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport default function FooterRow(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"tr\", props, children);\n}","import Cell from \"./Cell\";\nimport Row from \"./Row\";\n\n/**\n * Syntactic sugar. Do not support HOC.\n */\nfunction Summary(_ref) {\n var children = _ref.children;\n return children;\n}\n\nSummary.Row = Row;\nSummary.Cell = Cell;\nexport default Summary;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport SummaryContext from \"./SummaryContext\";\nexport default function SummaryCell(_ref) {\n var className = _ref.className,\n index = _ref.index,\n children = _ref.children,\n _ref$colSpan = _ref.colSpan,\n colSpan = _ref$colSpan === void 0 ? 1 : _ref$colSpan,\n rowSpan = _ref.rowSpan,\n align = _ref.align;\n\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n\n var _React$useContext = React.useContext(SummaryContext),\n scrollColumnIndex = _React$useContext.scrollColumnIndex,\n stickyOffsets = _React$useContext.stickyOffsets,\n flattenColumns = _React$useContext.flattenColumns,\n columns = _React$useContext.columns;\n\n var lastIndex = index + colSpan - 1;\n var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;\n var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction, columns === null || columns === void 0 ? void 0 : columns[index]);\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: className,\n index: index,\n component: \"td\",\n prefixCls: prefixCls,\n record: null,\n dataIndex: null,\n align: align,\n colSpan: mergedColSpan,\n rowSpan: rowSpan,\n render: function render() {\n return children;\n }\n }, fixedInfo));\n}","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport Summary from \"./Summary\";\nimport SummaryContext from \"./SummaryContext\";\n\nfunction Footer(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var children = props.children,\n stickyOffsets = props.stickyOffsets,\n flattenColumns = props.flattenColumns,\n columns = props.columns;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var lastColumnIndex = flattenColumns.length - 1;\n var scrollColumn = flattenColumns[lastColumnIndex];\n var summaryContext = React.useMemo(function () {\n return {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n scrollColumnIndex: scrollColumn !== null && scrollColumn !== void 0 && scrollColumn.scrollbar ? lastColumnIndex : null,\n columns: columns\n };\n }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets, columns]);\n return /*#__PURE__*/React.createElement(SummaryContext.Provider, {\n value: summaryContext\n }, /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"\".concat(prefixCls, \"-summary\")\n }, children));\n}\n\nexport default responseImmutable(Footer);\nexport var FooterComponents = Summary;","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n\n// recursion (flat tree structure)\nfunction flatRecord(record, indent, childrenColumnName, expandedKeys, getRowKey, index) {\n var arr = [];\n arr.push({\n record: record,\n indent: indent,\n index: index\n });\n var key = getRowKey(record);\n var expanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);\n\n if (record && Array.isArray(record[childrenColumnName]) && expanded) {\n // expanded state, flat record\n for (var i = 0; i < record[childrenColumnName].length; i += 1) {\n var tempArr = flatRecord(record[childrenColumnName][i], indent + 1, childrenColumnName, expandedKeys, getRowKey, i);\n arr.push.apply(arr, _toConsumableArray(tempArr));\n }\n }\n\n return arr;\n}\n/**\n * flat tree data on expanded state\n *\n * @export\n * @template T\n * @param {*} data : table data\n * @param {string} childrenColumnName : 指定树形结构的列名\n * @param {Set} expandedKeys : 展开的行对应的keys\n * @param {GetRowKey} getRowKey : 获取当前rowKey的方法\n * @returns flattened data\n */\n\n\nexport default function useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey) {\n var arr = React.useMemo(function () {\n if (expandedKeys !== null && expandedKeys !== void 0 && expandedKeys.size) {\n var temp = []; // collect flattened record\n\n for (var i = 0; i < (data === null || data === void 0 ? void 0 : data.length); i += 1) {\n var record = data[i];\n temp.push.apply(temp, _toConsumableArray(flatRecord(record, 0, childrenColumnName, expandedKeys, getRowKey, i)));\n }\n\n return temp;\n }\n\n return data === null || data === void 0 ? void 0 : data.map(function (item, index) {\n return {\n record: item,\n indent: 0,\n index: index\n };\n });\n }, [data, childrenColumnName, expandedKeys, getRowKey]);\n return arr;\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\n\nfunction ExpandedRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var prefixCls = props.prefixCls,\n children = props.children,\n Component = props.component,\n cellComponent = props.cellComponent,\n className = props.className,\n expanded = props.expanded,\n colSpan = props.colSpan,\n isEmpty = props.isEmpty;\n\n var _useContext = useContext(TableContext, ['scrollbarSize', 'fixHeader', 'fixColumn', 'componentWidth', 'horizonScroll']),\n scrollbarSize = _useContext.scrollbarSize,\n fixHeader = _useContext.fixHeader,\n fixColumn = _useContext.fixColumn,\n componentWidth = _useContext.componentWidth,\n horizonScroll = _useContext.horizonScroll; // Cache render node\n\n\n var contentNode = children;\n\n if (isEmpty ? horizonScroll : fixColumn) {\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: componentWidth - (fixHeader ? scrollbarSize : 0),\n position: 'sticky',\n left: 0,\n overflow: 'hidden'\n },\n className: \"\".concat(prefixCls, \"-expanded-row-fixed\")\n }, componentWidth !== 0 && contentNode);\n }\n\n return /*#__PURE__*/React.createElement(Component, {\n className: className,\n style: {\n display: expanded ? null : 'none'\n }\n }, /*#__PURE__*/React.createElement(Cell, {\n component: cellComponent,\n prefixCls: prefixCls,\n colSpan: colSpan\n }, contentNode));\n}\n\nexport default ExpandedRow;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { responseImmutable, useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport ExpandedRow from \"./ExpandedRow\";\n\nfunction BodyRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var className = props.className,\n style = props.style,\n record = props.record,\n index = props.index,\n renderIndex = props.renderIndex,\n rowKey = props.rowKey,\n rowExpandable = props.rowExpandable,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n _props$indent = props.indent,\n indent = _props$indent === void 0 ? 0 : _props$indent,\n RowComponent = props.rowComponent,\n cellComponent = props.cellComponent,\n scopeCellComponent = props.scopeCellComponent,\n childrenColumnName = props.childrenColumnName;\n\n var _useContext = useContext(TableContext, ['prefixCls', 'fixedInfoList', 'flattenColumns', 'expandableType', 'expandRowByClick', 'onTriggerExpand', 'rowClassName', 'expandedRowClassName', 'indentSize', 'expandIcon', 'expandedRowRender', 'expandIconColumnIndex']),\n prefixCls = _useContext.prefixCls,\n fixedInfoList = _useContext.fixedInfoList,\n flattenColumns = _useContext.flattenColumns,\n expandableType = _useContext.expandableType,\n expandRowByClick = _useContext.expandRowByClick,\n onTriggerExpand = _useContext.onTriggerExpand,\n rowClassName = _useContext.rowClassName,\n expandedRowClassName = _useContext.expandedRowClassName,\n indentSize = _useContext.indentSize,\n expandIcon = _useContext.expandIcon,\n expandedRowRender = _useContext.expandedRowRender,\n expandIconColumnIndex = _useContext.expandIconColumnIndex;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandRended = _React$useState2[0],\n setExpandRended = _React$useState2[1];\n\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var expanded = expandedKeys && expandedKeys.has(rowKey);\n React.useEffect(function () {\n if (expanded) {\n setExpandRended(true);\n }\n }, [expanded]);\n var rowSupportExpand = expandableType === 'row' && (!rowExpandable || rowExpandable(record)); // Only when row is not expandable and `children` exist in record\n\n var nestExpandable = expandableType === 'nest';\n var hasNestChildren = childrenColumnName && record && record[childrenColumnName];\n var mergedExpandable = rowSupportExpand || nestExpandable; // ======================== Expandable =========================\n\n var onExpandRef = React.useRef(onTriggerExpand);\n onExpandRef.current = onTriggerExpand;\n\n var onInternalTriggerExpand = function onInternalTriggerExpand() {\n onExpandRef.current.apply(onExpandRef, arguments);\n }; // =========================== onRow ===========================\n\n\n var additionalProps = onRow === null || onRow === void 0 ? void 0 : onRow(record, index);\n\n var onClick = function onClick(event) {\n var _additionalProps$onCl;\n\n if (expandRowByClick && mergedExpandable) {\n onInternalTriggerExpand(record, event);\n }\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 additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onCl = additionalProps.onClick) === null || _additionalProps$onCl === void 0 ? void 0 : _additionalProps$onCl.call.apply(_additionalProps$onCl, [additionalProps, event].concat(args));\n }; // ======================== Base tr row ========================\n\n\n var computeRowClassName;\n\n if (typeof rowClassName === 'string') {\n computeRowClassName = rowClassName;\n } else if (typeof rowClassName === 'function') {\n computeRowClassName = rowClassName(record, index, indent);\n }\n\n var columnsKey = getColumnsKey(flattenColumns);\n var baseRowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, additionalProps, {\n \"data-row-key\": rowKey,\n className: classNames(className, \"\".concat(prefixCls, \"-row\"), \"\".concat(prefixCls, \"-row-level-\").concat(indent), computeRowClassName, additionalProps && additionalProps.className),\n style: _objectSpread(_objectSpread({}, style), additionalProps ? additionalProps.style : null),\n onClick: onClick\n }), flattenColumns.map(function (column, colIndex) {\n var render = column.render,\n dataIndex = column.dataIndex,\n columnClassName = column.className;\n var key = columnsKey[colIndex];\n var fixedInfo = fixedInfoList[colIndex]; // ============= Used for nest expandable =============\n\n var appendCellNode;\n\n if (colIndex === (expandIconColumnIndex || 0) && nestExpandable) {\n appendCellNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n paddingLeft: \"\".concat(indentSize * indent, \"px\")\n },\n className: \"\".concat(prefixCls, \"-row-indent indent-level-\").concat(indent)\n }), expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: hasNestChildren,\n record: record,\n onExpand: onInternalTriggerExpand\n }));\n }\n\n var additionalCellProps;\n\n if (column.onCell) {\n additionalCellProps = column.onCell(record, index);\n }\n\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: columnClassName,\n ellipsis: column.ellipsis,\n align: column.align,\n scope: column.rowScope,\n component: column.rowScope ? scopeCellComponent : cellComponent,\n prefixCls: prefixCls,\n key: key,\n record: record,\n index: index,\n renderIndex: renderIndex,\n dataIndex: dataIndex,\n render: render,\n shouldCellUpdate: column.shouldCellUpdate,\n expanded: appendCellNode && expanded\n }, fixedInfo, {\n appendNode: appendCellNode,\n additionalProps: additionalCellProps\n }));\n })); // ======================== Expand Row =========================\n\n var expandRowNode;\n\n if (rowSupportExpand && (expandRended || expanded)) {\n var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n var computedExpandedRowClassName = expandedRowClassName && expandedRowClassName(record, index, indent);\n expandRowNode = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: expanded,\n className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), computedExpandedRowClassName),\n prefixCls: prefixCls,\n component: RowComponent,\n cellComponent: cellComponent,\n colSpan: flattenColumns.length,\n isEmpty: false\n }, expandContent);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, baseRowNode, expandRowNode);\n}\n\nBodyRow.displayName = 'BodyRow';\nexport default responseImmutable(BodyRow);","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function MeasureCell(_ref) {\n var columnKey = _ref.columnKey,\n onColumnResize = _ref.onColumnResize;\n var cellRef = React.useRef();\n React.useEffect(function () {\n if (cellRef.current) {\n onColumnResize(columnKey, cellRef.current.offsetWidth);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n data: columnKey\n }, /*#__PURE__*/React.createElement(\"td\", {\n ref: cellRef,\n style: {\n padding: 0,\n border: 0,\n height: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: 0,\n overflow: 'hidden'\n }\n }, \"\\xA0\")));\n}","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport MeasureCell from \"./MeasureCell\";\nexport default function MeasureRow(_ref) {\n var prefixCls = _ref.prefixCls,\n columnsKey = _ref.columnsKey,\n onColumnResize = _ref.onColumnResize;\n return /*#__PURE__*/React.createElement(\"tr\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-measure-row\"),\n style: {\n height: 0,\n fontSize: 0\n }\n }, /*#__PURE__*/React.createElement(ResizeObserver.Collection, {\n onBatchResize: function onBatchResize(infoList) {\n infoList.forEach(function (_ref2) {\n var columnKey = _ref2.data,\n size = _ref2.size;\n onColumnResize(columnKey, size.offsetWidth);\n });\n }\n }, columnsKey.map(function (columnKey) {\n return /*#__PURE__*/React.createElement(MeasureCell, {\n key: columnKey,\n columnKey: columnKey,\n onColumnResize: onColumnResize\n });\n })));\n}","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport TableContext from \"../context/TableContext\";\nimport useFlattenRecords from \"../hooks/useFlattenRecords\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport BodyRow from \"./BodyRow\";\nimport ExpandedRow from \"./ExpandedRow\";\nimport MeasureRow from \"./MeasureRow\";\n\nfunction Body(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var data = props.data,\n getRowKey = props.getRowKey,\n measureColumnWidth = props.measureColumnWidth,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n rowExpandable = props.rowExpandable,\n emptyNode = props.emptyNode,\n childrenColumnName = props.childrenColumnName;\n\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent', 'onColumnResize', 'flattenColumns']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent,\n onColumnResize = _useContext.onColumnResize,\n flattenColumns = _useContext.flattenColumns;\n\n var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey); // =================== Performance ====================\n\n var perfRef = React.useRef({\n renderWithProps: false\n }); // ====================== Render ======================\n\n var WrapperComponent = getComponent(['body', 'wrapper'], 'tbody');\n var trComponent = getComponent(['body', 'row'], 'tr');\n var tdComponent = getComponent(['body', 'cell'], 'td');\n var thComponent = getComponent(['body', 'cell'], 'th');\n var rows;\n\n if (data.length) {\n rows = flattenData.map(function (item, idx) {\n var record = item.record,\n indent = item.indent,\n renderIndex = item.index;\n var key = getRowKey(record, idx);\n return /*#__PURE__*/React.createElement(BodyRow, {\n key: key,\n rowKey: key,\n record: record,\n index: idx,\n renderIndex: renderIndex,\n rowComponent: trComponent,\n cellComponent: tdComponent,\n scopeCellComponent: thComponent,\n expandedKeys: expandedKeys,\n onRow: onRow,\n getRowKey: getRowKey,\n rowExpandable: rowExpandable,\n childrenColumnName: childrenColumnName,\n indent: indent\n });\n });\n } else {\n rows = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: true,\n className: \"\".concat(prefixCls, \"-placeholder\"),\n prefixCls: prefixCls,\n component: trComponent,\n cellComponent: tdComponent,\n colSpan: flattenColumns.length,\n isEmpty: true\n }, emptyNode);\n }\n\n var columnsKey = getColumnsKey(flattenColumns);\n return /*#__PURE__*/React.createElement(PerfContext.Provider, {\n value: perfRef.current\n }, /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-tbody\")\n }, measureColumnWidth && /*#__PURE__*/React.createElement(MeasureRow, {\n prefixCls: prefixCls,\n columnsKey: columnsKey,\n onColumnResize: onColumnResize\n }), rows));\n}\n\nBody.displayName = 'Body';\nexport default responseImmutable(Body);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"expandable\"];\nimport warning from \"rc-util/es/warning\";\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\nexport function getExpandableProps(props) {\n var expandable = props.expandable,\n legacyExpandableConfig = _objectWithoutProperties(props, _excluded);\n\n var config;\n\n if ('expandable' in props) {\n config = _objectSpread(_objectSpread({}, legacyExpandableConfig), expandable);\n } else {\n if (process.env.NODE_ENV !== 'production' && ['indentSize', 'expandedRowKeys', 'defaultExpandedRowKeys', 'defaultExpandAllRows', 'expandedRowRender', 'expandRowByClick', 'expandIcon', 'onExpand', 'onExpandedRowsChange', 'expandedRowClassName', 'expandIconColumnIndex', 'showExpandColumn', 'title'].some(function (prop) {\n return prop in props;\n })) {\n warning(false, 'expanded related props have been moved into `expandable`.');\n }\n\n config = legacyExpandableConfig;\n }\n\n if (config.showExpandColumn === false) {\n config.expandIconColumnIndex = -1;\n }\n\n return config;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"columnType\"];\nimport * as React from 'react';\nimport { INTERNAL_COL_DEFINE } from \"./utils/legacyUtil\";\n\nfunction ColGroup(_ref) {\n var colWidths = _ref.colWidths,\n columns = _ref.columns,\n columCount = _ref.columCount;\n var cols = [];\n var len = columCount || columns.length; // Only insert col with width & additional props\n // Skip if rest col do not have any useful info\n\n var mustInsert = false;\n\n for (var i = len - 1; i >= 0; i -= 1) {\n var width = colWidths[i];\n var column = columns && columns[i];\n var additionalProps = column && column[INTERNAL_COL_DEFINE];\n\n if (width || additionalProps || mustInsert) {\n var _ref2 = additionalProps || {},\n columnType = _ref2.columnType,\n restAdditionalProps = _objectWithoutProperties(_ref2, _excluded);\n\n cols.unshift( /*#__PURE__*/React.createElement(\"col\", _extends({\n key: i,\n style: {\n width: width\n }\n }, restAdditionalProps)));\n mustInsert = true;\n }\n }\n\n return /*#__PURE__*/React.createElement(\"colgroup\", null, cols);\n}\n\nexport default ColGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"noData\", \"columns\", \"flattenColumns\", \"colWidths\", \"columCount\", \"stickyOffsets\", \"direction\", \"fixHeader\", \"stickyTopOffset\", \"stickyBottomOffset\", \"stickyClassName\", \"onScroll\", \"maxContentScroll\", \"children\"];\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport { fillRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport ColGroup from \"../ColGroup\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\n\nfunction useColumnWidth(colWidths, columCount) {\n return useMemo(function () {\n var cloneColumns = [];\n\n for (var i = 0; i < columCount; i += 1) {\n var val = colWidths[i];\n\n if (val !== undefined) {\n cloneColumns[i] = val;\n } else {\n return null;\n }\n }\n\n return cloneColumns;\n }, [colWidths.join('_'), columCount]);\n}\n\nvar FixedHolder = /*#__PURE__*/React.forwardRef(function (props, ref) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var className = props.className,\n noData = props.noData,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n colWidths = props.colWidths,\n columCount = props.columCount,\n stickyOffsets = props.stickyOffsets,\n direction = props.direction,\n fixHeader = props.fixHeader,\n stickyTopOffset = props.stickyTopOffset,\n stickyBottomOffset = props.stickyBottomOffset,\n stickyClassName = props.stickyClassName,\n onScroll = props.onScroll,\n maxContentScroll = props.maxContentScroll,\n children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var _useContext = useContext(TableContext, ['prefixCls', 'scrollbarSize', 'isSticky']),\n prefixCls = _useContext.prefixCls,\n scrollbarSize = _useContext.scrollbarSize,\n isSticky = _useContext.isSticky;\n\n var combinationScrollBarSize = isSticky && !fixHeader ? 0 : scrollbarSize; // Pass wheel to scroll event\n\n var scrollRef = React.useRef(null);\n var setScrollRef = React.useCallback(function (element) {\n fillRef(ref, element);\n fillRef(scrollRef, element);\n }, []);\n React.useEffect(function () {\n var _scrollRef$current;\n\n function onWheel(e) {\n var _ref = e,\n currentTarget = _ref.currentTarget,\n deltaX = _ref.deltaX;\n\n if (deltaX) {\n onScroll({\n currentTarget: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n e.preventDefault();\n }\n }\n\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.addEventListener('wheel', onWheel);\n return function () {\n var _scrollRef$current2;\n\n (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.removeEventListener('wheel', onWheel);\n };\n }, []); // Check if all flattenColumns has width\n\n var allFlattenColumnsWithWidth = React.useMemo(function () {\n return flattenColumns.every(function (column) {\n return column.width >= 0;\n });\n }, [flattenColumns]); // Add scrollbar column\n\n var lastColumn = flattenColumns[flattenColumns.length - 1];\n var ScrollBarColumn = {\n fixed: lastColumn ? lastColumn.fixed : null,\n scrollbar: true,\n onHeaderCell: function onHeaderCell() {\n return {\n className: \"\".concat(prefixCls, \"-cell-scrollbar\")\n };\n }\n };\n var columnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(columns), [ScrollBarColumn]) : columns;\n }, [combinationScrollBarSize, columns]);\n var flattenColumnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(flattenColumns), [ScrollBarColumn]) : flattenColumns;\n }, [combinationScrollBarSize, flattenColumns]); // Calculate the sticky offsets\n\n var headerStickyOffsets = useMemo(function () {\n var right = stickyOffsets.right,\n left = stickyOffsets.left;\n return _objectSpread(_objectSpread({}, stickyOffsets), {}, {\n left: direction === 'rtl' ? [].concat(_toConsumableArray(left.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]) : left,\n right: direction === 'rtl' ? right : [].concat(_toConsumableArray(right.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]),\n isSticky: isSticky\n });\n }, [combinationScrollBarSize, stickyOffsets, isSticky]);\n var mergedColumnWidth = useColumnWidth(colWidths, columCount);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread({\n overflow: 'hidden'\n }, isSticky ? {\n top: stickyTopOffset,\n bottom: stickyBottomOffset\n } : {}),\n ref: setScrollRef,\n className: classNames(className, _defineProperty({}, stickyClassName, !!stickyClassName))\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: {\n tableLayout: 'fixed',\n visibility: noData || mergedColumnWidth ? null : 'hidden'\n }\n }, (!noData || !maxContentScroll || allFlattenColumnsWithWidth) && /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: mergedColumnWidth ? [].concat(_toConsumableArray(mergedColumnWidth), [combinationScrollBarSize]) : [],\n columCount: columCount + 1,\n columns: flattenColumnsWithScrollbar\n }), children(_objectSpread(_objectSpread({}, restProps), {}, {\n stickyOffsets: headerStickyOffsets,\n columns: columnsWithScrollbar,\n flattenColumns: flattenColumnsWithScrollbar\n }))));\n});\nFixedHolder.displayName = 'FixedHolder';\n/** Return a table in div as fixed element which contains sticky info */\n// export default responseImmutable(FixedHolder);\n\nexport default /*#__PURE__*/React.memo(FixedHolder);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\n\nfunction HeaderRow(_ref) {\n var cells = _ref.cells,\n stickyOffsets = _ref.stickyOffsets,\n flattenColumns = _ref.flattenColumns,\n RowComponent = _ref.rowComponent,\n CellComponent = _ref.cellComponent,\n tdCellComponent = _ref.tdCellComponent,\n onHeaderRow = _ref.onHeaderRow,\n index = _ref.index;\n\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n\n var rowProps;\n\n if (onHeaderRow) {\n rowProps = onHeaderRow(cells.map(function (cell) {\n return cell.column;\n }), index);\n }\n\n var columnsKey = getColumnsKey(cells.map(function (cell) {\n return cell.column;\n }));\n return /*#__PURE__*/React.createElement(RowComponent, rowProps, cells.map(function (cell, cellIndex) {\n var column = cell.column;\n var fixedInfo = getCellFixedInfo(cell.colStart, cell.colEnd, flattenColumns, stickyOffsets, direction, column);\n var additionalProps;\n\n if (column && column.onHeaderCell) {\n additionalProps = cell.column.onHeaderCell(column);\n }\n\n return /*#__PURE__*/React.createElement(Cell, _extends({}, cell, {\n scope: column.title ? cell.colSpan > 1 ? 'colgroup' : 'col' : null,\n ellipsis: column.ellipsis,\n align: column.align,\n component: column.title ? CellComponent : tdCellComponent,\n prefixCls: prefixCls,\n key: columnsKey[cellIndex]\n }, fixedInfo, {\n additionalProps: additionalProps,\n rowType: \"header\"\n }));\n }));\n}\n\nHeaderRow.displayName = 'HeaderRow';\nexport default HeaderRow;","import { responseImmutable, useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport HeaderRow from \"./HeaderRow\";\n\nfunction parseHeaderRows(rootColumns) {\n var rows = [];\n\n function fillRowCells(columns, colIndex) {\n var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n var currentColIndex = colIndex;\n var colSpans = columns.filter(Boolean).map(function (column) {\n var cell = {\n key: column.key,\n className: column.className || '',\n children: column.title,\n column: column,\n colStart: currentColIndex\n };\n var colSpan = 1;\n var subColumns = column.children;\n\n if (subColumns && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce(function (total, count) {\n return total + count;\n }, 0);\n cell.hasSubColumns = true;\n }\n\n if ('colSpan' in column) {\n colSpan = column.colSpan;\n }\n\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell);\n currentColIndex += colSpan;\n return colSpan;\n });\n return colSpans;\n } // Generate `rows` cell data\n\n\n fillRowCells(rootColumns, 0); // Handle `rowSpan`\n\n var rowCount = rows.length;\n\n var _loop = function _loop(rowIndex) {\n rows[rowIndex].forEach(function (cell) {\n if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n // eslint-disable-next-line no-param-reassign\n cell.rowSpan = rowCount - rowIndex;\n }\n });\n };\n\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n _loop(rowIndex);\n }\n\n return rows;\n}\n\nfunction Header(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n var stickyOffsets = props.stickyOffsets,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n onHeaderRow = props.onHeaderRow;\n\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent;\n\n var rows = React.useMemo(function () {\n return parseHeaderRows(columns);\n }, [columns]);\n var WrapperComponent = getComponent(['header', 'wrapper'], 'thead');\n var trComponent = getComponent(['header', 'row'], 'tr');\n var thComponent = getComponent(['header', 'cell'], 'th');\n var tdComponent = getComponent(['header', 'cell'], 'td');\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-thead\")\n }, rows.map(function (row, rowIndex) {\n var rowNode = /*#__PURE__*/React.createElement(HeaderRow, {\n key: rowIndex,\n flattenColumns: flattenColumns,\n cells: row,\n stickyOffsets: stickyOffsets,\n rowComponent: trComponent,\n cellComponent: thComponent,\n tdCellComponent: tdComponent,\n onHeaderRow: onHeaderRow,\n index: rowIndex\n });\n return rowNode;\n }));\n}\n\nexport default responseImmutable(Header);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"],\n _excluded2 = [\"fixed\"];\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { INTERNAL_COL_DEFINE } from \"../utils/legacyUtil\";\nimport { EXPAND_COLUMN } from \"../constant\";\nexport function convertChildrenToColumns(children) {\n return toArray(children).filter(function (node) {\n return /*#__PURE__*/React.isValidElement(node);\n }).map(function (_ref) {\n var key = _ref.key,\n props = _ref.props;\n\n var nodeChildren = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var column = _objectSpread({\n key: key\n }, restProps);\n\n if (nodeChildren) {\n column.children = convertChildrenToColumns(nodeChildren);\n }\n\n return column;\n });\n}\n\nfunction flatColumns(columns) {\n return columns.reduce(function (list, column) {\n var fixed = column.fixed; // Convert `fixed='true'` to `fixed='left'` instead\n\n var parsedFixed = fixed === true ? 'left' : fixed;\n var subColumns = column.children;\n\n if (subColumns && subColumns.length > 0) {\n return [].concat(_toConsumableArray(list), _toConsumableArray(flatColumns(subColumns).map(function (subColum) {\n return _objectSpread({\n fixed: parsedFixed\n }, subColum);\n })));\n }\n\n return [].concat(_toConsumableArray(list), [_objectSpread(_objectSpread({}, column), {}, {\n fixed: parsedFixed\n })]);\n }, []);\n}\n\nfunction warningFixed(flattenColumns) {\n var allFixLeft = true;\n\n for (var i = 0; i < flattenColumns.length; i += 1) {\n var col = flattenColumns[i];\n\n if (allFixLeft && col.fixed !== 'left') {\n allFixLeft = false;\n } else if (!allFixLeft && col.fixed === 'left') {\n warning(false, \"Index \".concat(i - 1, \" of `columns` missing `fixed='left'` prop.\"));\n break;\n }\n }\n\n var allFixRight = true;\n\n for (var _i = flattenColumns.length - 1; _i >= 0; _i -= 1) {\n var _col = flattenColumns[_i];\n\n if (allFixRight && _col.fixed !== 'right') {\n allFixRight = false;\n } else if (!allFixRight && _col.fixed === 'right') {\n warning(false, \"Index \".concat(_i + 1, \" of `columns` missing `fixed='right'` prop.\"));\n break;\n }\n }\n}\n\nfunction revertForRtl(columns) {\n return columns.map(function (column) {\n var fixed = column.fixed,\n restProps = _objectWithoutProperties(column, _excluded2); // Convert `fixed='left'` to `fixed='right'` instead\n\n\n var parsedFixed = fixed;\n\n if (fixed === 'left') {\n parsedFixed = 'right';\n } else if (fixed === 'right') {\n parsedFixed = 'left';\n }\n\n return _objectSpread({\n fixed: parsedFixed\n }, restProps);\n });\n}\n/**\n * Parse `columns` & `children` into `columns`.\n */\n\n\nfunction useColumns(_ref2, transformColumns) {\n var prefixCls = _ref2.prefixCls,\n columns = _ref2.columns,\n children = _ref2.children,\n expandable = _ref2.expandable,\n expandedKeys = _ref2.expandedKeys,\n columnTitle = _ref2.columnTitle,\n getRowKey = _ref2.getRowKey,\n onTriggerExpand = _ref2.onTriggerExpand,\n expandIcon = _ref2.expandIcon,\n rowExpandable = _ref2.rowExpandable,\n expandIconColumnIndex = _ref2.expandIconColumnIndex,\n direction = _ref2.direction,\n expandRowByClick = _ref2.expandRowByClick,\n columnWidth = _ref2.columnWidth,\n fixed = _ref2.fixed;\n var baseColumns = React.useMemo(function () {\n return columns || convertChildrenToColumns(children);\n }, [columns, children]); // ========================== Expand ==========================\n\n var withExpandColumns = React.useMemo(function () {\n if (expandable) {\n var _expandColumn;\n\n var cloneColumns = baseColumns.slice(); // >>> Warning if use `expandIconColumnIndex`\n\n if (process.env.NODE_ENV !== 'production' && expandIconColumnIndex >= 0) {\n warning(false, '`expandIconColumnIndex` is deprecated. Please use `Table.EXPAND_COLUMN` in `columns` instead.');\n } // >>> Insert expand column if not exist\n\n\n if (!cloneColumns.includes(EXPAND_COLUMN)) {\n var expandColIndex = expandIconColumnIndex || 0;\n\n if (expandColIndex >= 0) {\n cloneColumns.splice(expandColIndex, 0, EXPAND_COLUMN);\n }\n } // >>> Deduplicate additional expand column\n\n\n if (process.env.NODE_ENV !== 'production' && cloneColumns.filter(function (c) {\n return c === EXPAND_COLUMN;\n }).length > 1) {\n warning(false, 'There exist more than one `EXPAND_COLUMN` in `columns`.');\n }\n\n var expandColumnIndex = cloneColumns.indexOf(EXPAND_COLUMN);\n cloneColumns = cloneColumns.filter(function (column, index) {\n return column !== EXPAND_COLUMN || index === expandColumnIndex;\n }); // >>> Check if expand column need to fixed\n\n var prevColumn = baseColumns[expandColumnIndex];\n var fixedColumn;\n\n if ((fixed === 'left' || fixed) && !expandIconColumnIndex) {\n fixedColumn = 'left';\n } else if ((fixed === 'right' || fixed) && expandIconColumnIndex === baseColumns.length) {\n fixedColumn = 'right';\n } else {\n fixedColumn = prevColumn ? prevColumn.fixed : null;\n } // >>> Create expandable column\n\n\n var expandColumn = (_expandColumn = {}, _defineProperty(_expandColumn, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-expand-icon-col\"),\n columnType: 'EXPAND_COLUMN'\n }), _defineProperty(_expandColumn, \"title\", columnTitle), _defineProperty(_expandColumn, \"fixed\", fixedColumn), _defineProperty(_expandColumn, \"className\", \"\".concat(prefixCls, \"-row-expand-icon-cell\")), _defineProperty(_expandColumn, \"width\", columnWidth), _defineProperty(_expandColumn, \"render\", function render(_, record, index) {\n var rowKey = getRowKey(record, index);\n var expanded = expandedKeys.has(rowKey);\n var recordExpandable = rowExpandable ? rowExpandable(record) : true;\n var icon = expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: recordExpandable,\n record: record,\n onExpand: onTriggerExpand\n });\n\n if (expandRowByClick) {\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n }, icon);\n }\n\n return icon;\n }), _expandColumn);\n return cloneColumns.map(function (col) {\n return col === EXPAND_COLUMN ? expandColumn : col;\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && baseColumns.includes(EXPAND_COLUMN)) {\n warning(false, '`expandable` is not config but there exist `EXPAND_COLUMN` in `columns`.');\n }\n\n return baseColumns.filter(function (col) {\n return col !== EXPAND_COLUMN;\n });\n }, [expandable, baseColumns, getRowKey, expandedKeys, expandIcon, direction]); // ========================= Transform ========================\n\n var mergedColumns = React.useMemo(function () {\n var finalColumns = withExpandColumns;\n\n if (transformColumns) {\n finalColumns = transformColumns(finalColumns);\n } // Always provides at least one column for table display\n\n\n if (!finalColumns.length) {\n finalColumns = [{\n render: function render() {\n return null;\n }\n }];\n }\n\n return finalColumns;\n }, [transformColumns, withExpandColumns, direction]); // ========================== Flatten =========================\n\n var flattenColumns = React.useMemo(function () {\n if (direction === 'rtl') {\n return revertForRtl(flatColumns(mergedColumns));\n }\n\n return flatColumns(mergedColumns);\n }, [mergedColumns, direction]); // Only check out of production since it's waste for each render\n\n if (process.env.NODE_ENV !== 'production') {\n warningFixed(direction === 'rtl' ? flattenColumns.slice().reverse() : flattenColumns);\n }\n\n return [mergedColumns, flattenColumns];\n}\n\nexport default useColumns;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport function renderExpandIcon(_ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n record = _ref.record,\n onExpand = _ref.onExpand,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var expandClassName = \"\".concat(prefixCls, \"-row-expand-icon\");\n\n if (!expandable) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, \"\".concat(prefixCls, \"-row-spaced\"))\n });\n }\n\n var onClick = function onClick(event) {\n onExpand(record, event);\n event.stopPropagation();\n };\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-expanded\"), expanded), _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-collapsed\"), !expanded), _classNames)),\n onClick: onClick\n });\n}\nexport function findAllChildrenKeys(data, getRowKey, childrenColumnName) {\n var keys = [];\n\n function dig(list) {\n (list || []).forEach(function (item, index) {\n keys.push(getRowKey(item, index));\n dig(item[childrenColumnName]);\n });\n }\n\n dig(data);\n return keys;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { INTERNAL_HOOKS } from \"../Table\";\nimport { findAllChildrenKeys, renderExpandIcon } from \"../utils/expandUtil\";\nimport { getExpandableProps } from \"../utils/legacyUtil\";\nexport default function useExpand(props, mergedData, getRowKey) {\n var expandableConfig = getExpandableProps(props);\n var expandIcon = expandableConfig.expandIcon,\n expandedRowKeys = expandableConfig.expandedRowKeys,\n defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n expandedRowRender = expandableConfig.expandedRowRender,\n onExpand = expandableConfig.onExpand,\n onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n childrenColumnName = expandableConfig.childrenColumnName;\n var mergedExpandIcon = expandIcon || renderExpandIcon;\n var mergedChildrenColumnName = childrenColumnName || 'children';\n var expandableType = React.useMemo(function () {\n if (expandedRowRender) {\n return 'row';\n }\n /* eslint-disable no-underscore-dangle */\n\n /**\n * Fix https://github.com/ant-design/ant-design/issues/21154\n * This is a workaround to not to break current behavior.\n * We can remove follow code after final release.\n *\n * To other developer:\n * Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n */\n\n\n if (props.expandable && props.internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n })) {\n return 'nest';\n }\n /* eslint-enable */\n\n\n return false;\n }, [!!expandedRowRender, mergedData]);\n\n var _React$useState = React.useState(function () {\n if (defaultExpandedRowKeys) {\n return defaultExpandedRowKeys;\n }\n\n if (defaultExpandAllRows) {\n return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n }\n\n return [];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerExpandedKeys = _React$useState2[0],\n setInnerExpandedKeys = _React$useState2[1];\n\n var mergedExpandedKeys = React.useMemo(function () {\n return new Set(expandedRowKeys || innerExpandedKeys || []);\n }, [expandedRowKeys, innerExpandedKeys]);\n var onTriggerExpand = React.useCallback(function (record) {\n var key = getRowKey(record, mergedData.indexOf(record));\n var newExpandedKeys;\n var hasKey = mergedExpandedKeys.has(key);\n\n if (hasKey) {\n mergedExpandedKeys.delete(key);\n newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n } else {\n newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n }\n\n setInnerExpandedKeys(newExpandedKeys);\n\n if (onExpand) {\n onExpand(!hasKey, record);\n }\n\n if (onExpandedRowsChange) {\n onExpandedRowsChange(newExpandedKeys);\n }\n }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]); // Warning if use `expandedRowRender` and nest children in the same time\n\n if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n })) {\n warning(false, '`expandedRowRender` should not use with nested Table');\n }\n\n return [expandableConfig, expandableType, mergedExpandedKeys, mergedExpandIcon, mergedChildrenColumnName, onTriggerExpand];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\n\n/**\n * Execute code before next frame but async\n */\nexport function useLayoutState(defaultState) {\n var stateRef = useRef(defaultState);\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var lastPromiseRef = useRef(null);\n var updateBatchRef = useRef([]);\n\n function setFrameState(updater) {\n updateBatchRef.current.push(updater);\n var promise = Promise.resolve();\n lastPromiseRef.current = promise;\n promise.then(function () {\n if (lastPromiseRef.current === promise) {\n var prevBatch = updateBatchRef.current;\n var prevState = stateRef.current;\n updateBatchRef.current = [];\n prevBatch.forEach(function (batchUpdater) {\n stateRef.current = batchUpdater(stateRef.current);\n });\n lastPromiseRef.current = null;\n\n if (prevState !== stateRef.current) {\n forceUpdate({});\n }\n }\n });\n }\n\n useEffect(function () {\n return function () {\n lastPromiseRef.current = null;\n };\n }, []);\n return [stateRef.current, setFrameState];\n}\n/** Lock frame, when frame pass reset the lock. */\n\nexport function useTimeoutLock(defaultState) {\n var frameRef = useRef(defaultState || null);\n var timeoutRef = useRef();\n\n function cleanUp() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function setState(newState) {\n frameRef.current = newState;\n cleanUp();\n timeoutRef.current = window.setTimeout(function () {\n frameRef.current = null;\n timeoutRef.current = undefined;\n }, 100);\n }\n\n function getState() {\n return frameRef.current;\n }\n\n useEffect(function () {\n return cleanUp;\n }, []);\n return [setState, getState];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\n// fix ssr render\nvar defaultContainer = canUseDom() ? window : null;\n/** Sticky header hooks */\n\nexport default function useSticky(sticky, prefixCls) {\n var _ref = _typeof(sticky) === 'object' ? sticky : {},\n _ref$offsetHeader = _ref.offsetHeader,\n offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,\n _ref$offsetSummary = _ref.offsetSummary,\n offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,\n _ref$offsetScroll = _ref.offsetScroll,\n offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === void 0 ? function () {\n return defaultContainer;\n } : _ref$getContainer;\n\n var container = getContainer() || defaultContainer;\n return React.useMemo(function () {\n var isSticky = !!sticky;\n return {\n isSticky: isSticky,\n stickyClassName: isSticky ? \"\".concat(prefixCls, \"-sticky-holder\") : '',\n offsetHeader: offsetHeader,\n offsetSummary: offsetSummary,\n offsetScroll: offsetScroll,\n container: container\n };\n }, [offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);\n}","import { useMemo } from 'react';\n\n/**\n * Get sticky column offset width\n */\nfunction useStickyOffsets(colWidths, columnCount, direction) {\n var stickyOffsets = useMemo(function () {\n var leftOffsets = [];\n var rightOffsets = [];\n var left = 0;\n var right = 0;\n\n for (var start = 0; start < columnCount; start += 1) {\n if (direction === 'rtl') {\n // Left offset\n rightOffsets[start] = right;\n right += colWidths[start] || 0; // Right offset\n\n var end = columnCount - start - 1;\n leftOffsets[end] = left;\n left += colWidths[end] || 0;\n } else {\n // Left offset\n leftOffsets[start] = left;\n left += colWidths[start] || 0; // Right offset\n\n var _end = columnCount - start - 1;\n\n rightOffsets[_end] = right;\n right += colWidths[_end] || 0;\n }\n }\n\n return {\n left: leftOffsets,\n right: rightOffsets\n };\n }, [colWidths, columnCount, direction]);\n return stickyOffsets;\n}\n\nexport default useStickyOffsets;","import * as React from 'react';\n\nfunction Panel(_ref) {\n var className = _ref.className,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\n\nexport default Panel;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport * as React from 'react';\nimport TableContext from \"./context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { useLayoutState } from \"./hooks/useFrame\";\n\nvar StickyScrollBar = function StickyScrollBar(_ref, ref) {\n var _scrollBodyRef$curren, _scrollBodyRef$curren2;\n\n var scrollBodyRef = _ref.scrollBodyRef,\n onScroll = _ref.onScroll,\n offsetScroll = _ref.offsetScroll,\n container = _ref.container;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var bodyScrollWidth = ((_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 ? void 0 : _scrollBodyRef$curren.scrollWidth) || 0;\n var bodyWidth = ((_scrollBodyRef$curren2 = scrollBodyRef.current) === null || _scrollBodyRef$curren2 === void 0 ? void 0 : _scrollBodyRef$curren2.clientWidth) || 0;\n var scrollBarWidth = bodyScrollWidth && bodyWidth * (bodyWidth / bodyScrollWidth);\n var scrollBarRef = React.useRef();\n\n var _useLayoutState = useLayoutState({\n scrollLeft: 0,\n isHiddenScrollBar: false\n }),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n scrollState = _useLayoutState2[0],\n setScrollState = _useLayoutState2[1];\n\n var refState = React.useRef({\n delta: 0,\n x: 0\n });\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isActive = _React$useState2[0],\n setActive = _React$useState2[1];\n\n var onMouseUp = function onMouseUp() {\n setActive(false);\n };\n\n var onMouseDown = function onMouseDown(event) {\n event.persist();\n refState.current.delta = event.pageX - scrollState.scrollLeft;\n refState.current.x = 0;\n setActive(true);\n event.preventDefault();\n };\n\n var onMouseMove = function onMouseMove(event) {\n var _window;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n var _ref2 = event || ((_window = window) === null || _window === void 0 ? void 0 : _window.event),\n buttons = _ref2.buttons;\n\n if (!isActive || buttons === 0) {\n // If out body mouse up, we can set isActive false when mouse move\n if (isActive) {\n setActive(false);\n }\n\n return;\n }\n\n var left = refState.current.x + event.pageX - refState.current.x - refState.current.delta;\n\n if (left <= 0) {\n left = 0;\n }\n\n if (left + scrollBarWidth >= bodyWidth) {\n left = bodyWidth - scrollBarWidth;\n }\n\n onScroll({\n scrollLeft: left / bodyWidth * (bodyScrollWidth + 2)\n });\n refState.current.x = event.pageX;\n };\n\n var onContainerScroll = function onContainerScroll() {\n if (!scrollBodyRef.current) {\n return;\n }\n\n var tableOffsetTop = getOffset(scrollBodyRef.current).top;\n var tableBottomOffset = tableOffsetTop + scrollBodyRef.current.offsetHeight;\n var currentClientOffset = container === window ? document.documentElement.scrollTop + window.innerHeight : getOffset(container).top + container.clientHeight;\n\n if (tableBottomOffset - getScrollBarSize() <= currentClientOffset || tableOffsetTop >= currentClientOffset - offsetScroll) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: true\n });\n });\n } else {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: false\n });\n });\n }\n };\n\n var setScrollLeft = function setScrollLeft(left) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: left / bodyScrollWidth * bodyWidth || 0\n });\n });\n };\n\n React.useImperativeHandle(ref, function () {\n return {\n setScrollLeft: setScrollLeft\n };\n });\n React.useEffect(function () {\n var onMouseUpListener = addEventListener(document.body, 'mouseup', onMouseUp, false);\n var onMouseMoveListener = addEventListener(document.body, 'mousemove', onMouseMove, false);\n onContainerScroll();\n return function () {\n onMouseUpListener.remove();\n onMouseMoveListener.remove();\n };\n }, [scrollBarWidth, isActive]);\n React.useEffect(function () {\n var onScrollListener = addEventListener(container, 'scroll', onContainerScroll, false);\n var onResizeListener = addEventListener(window, 'resize', onContainerScroll, false);\n return function () {\n onScrollListener.remove();\n onResizeListener.remove();\n };\n }, [container]);\n React.useEffect(function () {\n if (!scrollState.isHiddenScrollBar) {\n setScrollState(function (state) {\n var bodyNode = scrollBodyRef.current;\n\n if (!bodyNode) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: bodyNode.scrollLeft / bodyNode.scrollWidth * bodyNode.clientWidth\n });\n });\n }\n }, [scrollState.isHiddenScrollBar]);\n\n if (bodyScrollWidth <= bodyWidth || !scrollBarWidth || scrollState.isHiddenScrollBar) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: getScrollBarSize(),\n width: bodyWidth,\n bottom: offsetScroll\n },\n className: \"\".concat(prefixCls, \"-sticky-scroll\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onMouseDown,\n ref: scrollBarRef,\n className: classNames(\"\".concat(prefixCls, \"-sticky-scroll-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-sticky-scroll-bar-active\"), isActive)),\n style: {\n width: \"\".concat(scrollBarWidth, \"px\"),\n transform: \"translate3d(\".concat(scrollState.scrollLeft, \"px, 0, 0)\")\n }\n }));\n};\n\nexport default /*#__PURE__*/React.forwardRef(StickyScrollBar);","/* istanbul ignore next */\n\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_) {\n return null;\n}\n\nexport default Column;","/* istanbul ignore next */\n\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\n\nexport default ColumnGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\n/**\n * Feature:\n * - fixed not need to set width\n * - support `rowExpandable` to config row expand logic\n * - add `summary` to support `() => ReactNode`\n *\n * Update:\n * - `dataIndex` is `array[]` now\n * - `expandable` wrap all the expand related props\n *\n * Removed:\n * - expandIconAsCell\n * - useFixedHeader\n * - rowRef\n * - columns[number].onCellClick\n * - onRowClick\n * - onRowDoubleClick\n * - onRowMouseEnter\n * - onRowMouseLeave\n * - getBodyWrapper\n * - bodyStyle\n *\n * Deprecated:\n * - All expanded props, move into expandable\n */\nimport { makeImmutable } from '@rc-component/context';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Body from \"./Body\";\nimport ColGroup from \"./ColGroup\";\nimport { EXPAND_COLUMN } from \"./constant\";\nimport TableContext from \"./context/TableContext\";\nimport FixedHolder from \"./FixedHolder\";\nimport Footer, { FooterComponents } from \"./Footer\";\nimport Summary from \"./Footer/Summary\";\nimport Header from \"./Header/Header\";\nimport useColumns from \"./hooks/useColumns\";\nimport useExpand from \"./hooks/useExpand\";\nimport useFixedInfo from \"./hooks/useFixedInfo\";\nimport { useLayoutState, useTimeoutLock } from \"./hooks/useFrame\";\nimport useHover from \"./hooks/useHover\";\nimport useSticky from \"./hooks/useSticky\";\nimport useStickyOffsets from \"./hooks/useStickyOffsets\";\nimport Panel from \"./Panel\";\nimport StickyScrollBar from \"./stickyScrollBar\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport { getColumnsKey, validateValue } from \"./utils/valueUtil\"; // Used for conditions cache\n\nvar EMPTY_DATA = []; // Used for customize scroll\n\nvar EMPTY_SCROLL_TARGET = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';\n\nfunction defaultEmpty() {\n return 'No Data';\n}\n\nfunction Table(tableProps) {\n var _classNames;\n\n var props = _objectSpread({\n rowKey: 'key',\n prefixCls: 'rc-table',\n emptyText: defaultEmpty\n }, tableProps);\n\n var prefixCls = props.prefixCls,\n className = props.className,\n rowClassName = props.rowClassName,\n style = props.style,\n data = props.data,\n rowKey = props.rowKey,\n scroll = props.scroll,\n tableLayout = props.tableLayout,\n direction = props.direction,\n title = props.title,\n footer = props.footer,\n summary = props.summary,\n caption = props.caption,\n id = props.id,\n showHeader = props.showHeader,\n components = props.components,\n emptyText = props.emptyText,\n onRow = props.onRow,\n onHeaderRow = props.onHeaderRow,\n internalHooks = props.internalHooks,\n transformColumns = props.transformColumns,\n internalRefs = props.internalRefs,\n sticky = props.sticky;\n var mergedData = data || EMPTY_DATA;\n var hasData = !!mergedData.length; // ===================== Warning ======================\n\n if (process.env.NODE_ENV !== 'production') {\n ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n });\n warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n } // ==================== Customize =====================\n\n\n var getComponent = React.useCallback(function (path, defaultComponent) {\n return getValue(components, path) || defaultComponent;\n }, [components]);\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n\n return function (record) {\n var key = record && record[rowKey];\n\n if (process.env.NODE_ENV !== 'production') {\n warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n }\n\n return key;\n };\n }, [rowKey]); // ====================== Hover =======================\n\n var _useHover = useHover(),\n _useHover2 = _slicedToArray(_useHover, 3),\n startRow = _useHover2[0],\n endRow = _useHover2[1],\n onHover = _useHover2[2]; // ====================== Expand ======================\n\n\n var _useExpand = useExpand(props, mergedData, getRowKey),\n _useExpand2 = _slicedToArray(_useExpand, 6),\n expandableConfig = _useExpand2[0],\n expandableType = _useExpand2[1],\n mergedExpandedKeys = _useExpand2[2],\n mergedExpandIcon = _useExpand2[3],\n mergedChildrenColumnName = _useExpand2[4],\n onTriggerExpand = _useExpand2[5]; // ====================== Column ======================\n\n\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n componentWidth = _React$useState2[0],\n setComponentWidth = _React$useState2[1];\n\n var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n expandable: !!expandableConfig.expandedRowRender,\n columnTitle: expandableConfig.columnTitle,\n expandedKeys: mergedExpandedKeys,\n getRowKey: getRowKey,\n // https://github.com/ant-design/ant-design/issues/23894\n onTriggerExpand: onTriggerExpand,\n expandIcon: mergedExpandIcon,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n direction: direction\n }), internalHooks === INTERNAL_HOOKS ? transformColumns : null),\n _useColumns2 = _slicedToArray(_useColumns, 2),\n columns = _useColumns2[0],\n flattenColumns = _useColumns2[1];\n\n var columnContext = React.useMemo(function () {\n return {\n columns: columns,\n flattenColumns: flattenColumns\n };\n }, [columns, flattenColumns]); // ====================== Scroll ======================\n\n var fullTableRef = React.useRef();\n var scrollHeaderRef = React.useRef();\n var scrollBodyRef = React.useRef();\n var scrollBodyContainerRef = React.useRef();\n var scrollSummaryRef = React.useRef();\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pingedLeft = _React$useState4[0],\n setPingedLeft = _React$useState4[1];\n\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n pingedRight = _React$useState6[0],\n setPingedRight = _React$useState6[1];\n\n var _useLayoutState = useLayoutState(new Map()),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n colsWidths = _useLayoutState2[0],\n updateColsWidths = _useLayoutState2[1]; // Convert map to number width\n\n\n var colsKeys = getColumnsKey(flattenColumns);\n var pureColWidths = colsKeys.map(function (columnKey) {\n return colsWidths.get(columnKey);\n });\n var colWidths = React.useMemo(function () {\n return pureColWidths;\n }, [pureColWidths.join('_')]);\n var stickyOffsets = useStickyOffsets(colWidths, flattenColumns.length, direction);\n var fixHeader = scroll && validateValue(scroll.y);\n var horizonScroll = scroll && validateValue(scroll.x) || Boolean(expandableConfig.fixed);\n var fixColumn = horizonScroll && flattenColumns.some(function (_ref) {\n var fixed = _ref.fixed;\n return fixed;\n }); // Sticky\n\n var stickyRef = React.useRef();\n\n var _useSticky = useSticky(sticky, prefixCls),\n isSticky = _useSticky.isSticky,\n offsetHeader = _useSticky.offsetHeader,\n offsetSummary = _useSticky.offsetSummary,\n offsetScroll = _useSticky.offsetScroll,\n stickyClassName = _useSticky.stickyClassName,\n container = _useSticky.container; // Footer (Fix footer must fixed header)\n\n\n var summaryNode = React.useMemo(function () {\n return summary === null || summary === void 0 ? void 0 : summary(mergedData);\n }, [summary, mergedData]);\n var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed; // Scroll\n\n var scrollXStyle;\n var scrollYStyle;\n var scrollTableStyle;\n\n if (fixHeader) {\n scrollYStyle = {\n overflowY: 'scroll',\n maxHeight: scroll.y\n };\n }\n\n if (horizonScroll) {\n scrollXStyle = {\n overflowX: 'auto'\n }; // When no vertical scrollbar, should hide it\n // https://github.com/ant-design/ant-design/pull/20705\n // https://github.com/ant-design/ant-design/issues/21879\n\n if (!fixHeader) {\n scrollYStyle = {\n overflowY: 'hidden'\n };\n }\n\n scrollTableStyle = {\n width: (scroll === null || scroll === void 0 ? void 0 : scroll.x) === true ? 'auto' : scroll === null || scroll === void 0 ? void 0 : scroll.x,\n minWidth: '100%'\n };\n }\n\n var onColumnResize = React.useCallback(function (columnKey, width) {\n if (isVisible(fullTableRef.current)) {\n updateColsWidths(function (widths) {\n if (widths.get(columnKey) !== width) {\n var newWidths = new Map(widths);\n newWidths.set(columnKey, width);\n return newWidths;\n }\n\n return widths;\n });\n }\n }, []);\n\n var _useTimeoutLock = useTimeoutLock(null),\n _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n setScrollTarget = _useTimeoutLock2[0],\n getScrollTarget = _useTimeoutLock2[1];\n\n function forceScroll(scrollLeft, target) {\n if (!target) {\n return;\n }\n\n if (typeof target === 'function') {\n target(scrollLeft);\n } else if (target.scrollLeft !== scrollLeft) {\n target.scrollLeft = scrollLeft; // Delay to force scroll position if not sync\n // ref: https://github.com/ant-design/ant-design/issues/37179\n\n if (target.scrollLeft !== scrollLeft) {\n setTimeout(function () {\n target.scrollLeft = scrollLeft;\n }, 0);\n }\n }\n }\n\n var onScroll = useEvent(function (_ref2) {\n var currentTarget = _ref2.currentTarget,\n scrollLeft = _ref2.scrollLeft;\n var isRTL = direction === 'rtl';\n var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n\n if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n var _stickyRef$current;\n\n setScrollTarget(compareTarget);\n forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n forceScroll(mergedScrollLeft, scrollBodyRef.current);\n forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n }\n\n if (currentTarget) {\n var scrollWidth = currentTarget.scrollWidth,\n clientWidth = currentTarget.clientWidth; // There is no space to scroll\n\n if (scrollWidth === clientWidth) {\n setPingedLeft(false);\n setPingedRight(false);\n return;\n }\n\n if (isRTL) {\n setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n setPingedRight(-mergedScrollLeft > 0);\n } else {\n setPingedLeft(mergedScrollLeft > 0);\n setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n }\n }\n });\n\n var triggerOnScroll = function triggerOnScroll() {\n if (horizonScroll && scrollBodyRef.current) {\n onScroll({\n currentTarget: scrollBodyRef.current\n });\n } else {\n setPingedLeft(false);\n setPingedRight(false);\n }\n };\n\n var onFullTableResize = function onFullTableResize(_ref3) {\n var width = _ref3.width;\n\n if (width !== componentWidth) {\n triggerOnScroll();\n setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n }\n }; // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n\n\n var mounted = React.useRef(false);\n React.useEffect(function () {\n // onFullTableResize will be trigger once when ResizeObserver is mounted\n // This will reduce one duplicated triggerOnScroll time\n if (mounted.current) {\n triggerOnScroll();\n }\n }, [horizonScroll, data, columns.length]);\n React.useEffect(function () {\n mounted.current = true;\n }, []); // ===================== Effects ======================\n\n var _React$useState7 = React.useState(0),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n scrollbarSize = _React$useState8[0],\n setScrollbarSize = _React$useState8[1];\n\n var _React$useState9 = React.useState(true),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n supportSticky = _React$useState10[0],\n setSupportSticky = _React$useState10[1]; // Only IE not support, we mark as support first\n\n\n React.useEffect(function () {\n if (scrollBodyRef.current instanceof Element) {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n } else {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n }\n\n setSupportSticky(isStyleSupport('position', 'sticky'));\n }, []); // ================== INTERNAL HOOKS ==================\n\n React.useEffect(function () {\n if (internalHooks === INTERNAL_HOOKS && internalRefs) {\n internalRefs.body.current = scrollBodyRef.current;\n }\n }); // ========================================================================\n // == Render ==\n // ========================================================================\n // =================== Render: Func ===================\n\n var renderFixedHeaderTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n }, [fixFooter, summaryNode]);\n var renderFixedFooterTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n }, [summaryNode]); // =================== Render: Node ===================\n\n var TableComponent = getComponent(['table'], 'table'); // Table layout\n\n var mergedTableLayout = React.useMemo(function () {\n if (tableLayout) {\n return tableLayout;\n } // https://github.com/ant-design/ant-design/issues/25227\n // When scroll.x is max-content, no need to fix table layout\n // it's width should stretch out to fit content\n\n\n if (fixColumn) {\n return (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' ? 'auto' : 'fixed';\n }\n\n if (fixHeader || isSticky || flattenColumns.some(function (_ref4) {\n var ellipsis = _ref4.ellipsis;\n return ellipsis;\n })) {\n return 'fixed';\n }\n\n return 'auto';\n }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n var groupTableNode; // Header props\n\n var headerProps = {\n colWidths: colWidths,\n columCount: flattenColumns.length,\n stickyOffsets: stickyOffsets,\n onHeaderRow: onHeaderRow,\n fixHeader: fixHeader,\n scroll: scroll\n }; // Empty\n\n var emptyNode = React.useMemo(function () {\n if (hasData) {\n return null;\n }\n\n if (typeof emptyText === 'function') {\n return emptyText();\n }\n\n return emptyText;\n }, [hasData, emptyText]); // Body\n\n var bodyTable = /*#__PURE__*/React.createElement(Body, {\n data: mergedData,\n measureColumnWidth: fixHeader || horizonScroll || isSticky,\n expandedKeys: mergedExpandedKeys,\n rowExpandable: expandableConfig.rowExpandable,\n getRowKey: getRowKey,\n onRow: onRow,\n emptyNode: emptyNode,\n childrenColumnName: mergedChildrenColumnName\n });\n var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: flattenColumns.map(function (_ref5) {\n var width = _ref5.width;\n return width;\n }),\n columns: flattenColumns\n });\n var captionElement = caption !== null && caption !== undefined ? /*#__PURE__*/React.createElement(\"caption\", {\n className: \"\".concat(prefixCls, \"-caption\")\n }, caption) : undefined;\n var customizeScrollBody = getComponent(['body']);\n\n if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {\n warning(false, '`components.body` with render props is only work on `scroll.y`.');\n }\n\n var dataProps = pickAttrs(props, {\n data: true\n });\n var ariaProps = pickAttrs(props, {\n aria: true\n });\n\n if (fixHeader || isSticky) {\n // >>>>>> Fixed Header\n var bodyContent;\n\n if (typeof customizeScrollBody === 'function') {\n bodyContent = customizeScrollBody(mergedData, {\n scrollbarSize: scrollbarSize,\n ref: scrollBodyRef,\n onScroll: onScroll\n });\n headerProps.colWidths = flattenColumns.map(function (_ref6, index) {\n var width = _ref6.width;\n var colWidth = index === columns.length - 1 ? width - scrollbarSize : width;\n\n if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n return colWidth;\n }\n\n warning(false, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n return 0;\n });\n } else {\n bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n onScroll: onScroll,\n ref: scrollBodyRef,\n className: classNames(\"\".concat(prefixCls, \"-body\"))\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n columns: columns\n }, summaryNode)));\n } // Fixed holder share the props\n\n\n var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n noData: !mergedData.length,\n maxContentScroll: horizonScroll && scroll.x === 'max-content'\n }, headerProps), columnContext), {}, {\n direction: direction,\n stickyClassName: stickyClassName,\n onScroll: onScroll\n });\n\n groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyTopOffset: offsetHeader,\n className: \"\".concat(prefixCls, \"-header\"),\n ref: scrollHeaderRef\n }), renderFixedHeaderTable), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyBottomOffset: offsetSummary,\n className: \"\".concat(prefixCls, \"-summary\"),\n ref: scrollSummaryRef\n }), renderFixedFooterTable), isSticky && /*#__PURE__*/React.createElement(StickyScrollBar, {\n ref: stickyRef,\n offsetScroll: offsetScroll,\n scrollBodyRef: scrollBodyRef,\n onScroll: onScroll,\n container: container\n }));\n } else {\n // >>>>>> Unique table\n groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n className: classNames(\"\".concat(prefixCls, \"-content\")),\n onScroll: onScroll,\n ref: scrollBodyRef\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n columns: columns\n }, summaryNode)));\n }\n\n var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-right\"), pingedRight), _defineProperty(_classNames, \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), _defineProperty(_classNames, \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right'), _classNames)),\n style: style,\n id: id,\n ref: fullTableRef\n }, dataProps), title && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-title\")\n }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollBodyContainerRef,\n className: \"\".concat(prefixCls, \"-container\")\n }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer(mergedData)));\n\n if (horizonScroll) {\n fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onFullTableResize\n }, fullTable);\n }\n\n var fixedInfoList = useFixedInfo(flattenColumns, stickyOffsets, direction, columns);\n var TableContextValue = React.useMemo(function () {\n return {\n // Table\n prefixCls: prefixCls,\n getComponent: getComponent,\n scrollbarSize: scrollbarSize,\n direction: direction,\n fixedInfoList: fixedInfoList,\n isSticky: isSticky,\n supportSticky: supportSticky,\n componentWidth: componentWidth,\n fixHeader: fixHeader,\n fixColumn: fixColumn,\n horizonScroll: horizonScroll,\n // Body\n tableLayout: mergedTableLayout,\n rowClassName: rowClassName,\n expandedRowClassName: expandableConfig.expandedRowClassName,\n expandIcon: mergedExpandIcon,\n expandableType: expandableType,\n expandRowByClick: expandableConfig.expandRowByClick,\n expandedRowRender: expandableConfig.expandedRowRender,\n onTriggerExpand: onTriggerExpand,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n indentSize: expandableConfig.indentSize,\n allColumnsFixedLeft: flattenColumns.every(function (col) {\n return col.fixed === 'left';\n }),\n // Column\n columns: columns,\n flattenColumns: flattenColumns,\n onColumnResize: onColumnResize,\n // Row\n hoverStartRow: startRow,\n hoverEndRow: endRow,\n onHover: onHover\n };\n }, [// Table\n prefixCls, getComponent, scrollbarSize, direction, fixedInfoList, isSticky, supportSticky, componentWidth, fixHeader, fixColumn, horizonScroll, // Body\n mergedTableLayout, rowClassName, expandableConfig.expandedRowClassName, mergedExpandIcon, expandableType, expandableConfig.expandRowByClick, expandableConfig.expandedRowRender, onTriggerExpand, expandableConfig.expandIconColumnIndex, expandableConfig.indentSize, // Column\n columns, flattenColumns, onColumnResize, // Row\n startRow, endRow, onHover]);\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: TableContextValue\n }, fullTable);\n}\n\nexport function genTable(shouldTriggerRender) {\n return makeImmutable(Table, shouldTriggerRender);\n}\nvar ImmutableTable = genTable();\nImmutableTable.EXPAND_COLUMN = EXPAND_COLUMN;\nImmutableTable.Column = Column;\nImmutableTable.ColumnGroup = ColumnGroup;\nImmutableTable.Summary = FooterComponents;\nexport default ImmutableTable;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useHover() {\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n startRow = _React$useState2[0],\n setStartRow = _React$useState2[1];\n\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n endRow = _React$useState4[0],\n setEndRow = _React$useState4[1];\n\n var onHover = React.useCallback(function (start, end) {\n setStartRow(start);\n setEndRow(end);\n }, []);\n return [startRow, endRow, onHover];\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nexport default function useFixedInfo(flattenColumns, stickyOffsets, direction, columns) {\n var fixedInfoList = flattenColumns.map(function (_, colIndex) {\n return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction, columns === null || columns === void 0 ? void 0 : columns[colIndex]);\n });\n return useMemo(function () {\n return fixedInfoList;\n }, [fixedInfoList], function (prev, next) {\n return !isEqual(prev, next);\n });\n}","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import { TinyColor } from '@ctrl/tinycolor';\nimport * as React from 'react';\nimport { useToken } from '../theme/internal';\nconst Empty = () => {\n const [, token] = useToken();\n const bgColor = new TinyColor(token.colorBgBase);\n let themeStyle = {};\n // Dark Theme need more dark of this\n if (bgColor.toHsl().l < 0.5) {\n themeStyle = {\n opacity: 0.65\n };\n }\n return /*#__PURE__*/React.createElement(\"svg\", {\n style: themeStyle,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n fillOpacity: \".8\",\n fill: \"#F5F5F7\",\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#AEB8C2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"url(#linearGradient-1)\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#F5F5F7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#DCE0E6\"\n })), /*#__PURE__*/React.createElement(\"path\", {\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 fill: \"#DCE0E6\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(149.65 15.383)\",\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Empty.displayName = 'EmptyImage';\n}\nexport default Empty;","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { useToken } from '../theme/internal';\nconst Simple = () => {\n const [, token] = useToken();\n const {\n colorFill,\n colorFillTertiary,\n colorFillQuaternary,\n colorBgContainer\n } = token;\n const {\n borderColor,\n shadowColor,\n contentColor\n } = useMemo(() => ({\n borderColor: new TinyColor(colorFill).onBackground(colorBgContainer).toHexString(),\n shadowColor: new TinyColor(colorFillTertiary).onBackground(colorBgContainer).toHexString(),\n contentColor: new TinyColor(colorFillQuaternary).onBackground(colorBgContainer).toHexString()\n }), [colorFill, colorFillTertiary, colorFillQuaternary, colorBgContainer]);\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: shadowColor,\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"nonzero\",\n stroke: borderColor\n }, /*#__PURE__*/React.createElement(\"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 }), /*#__PURE__*/React.createElement(\"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: contentColor\n }))));\n};\nexport default Simple;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedEmptyStyle = token => {\n const {\n componentCls,\n margin,\n marginXS,\n marginXL,\n fontSize,\n lineHeight\n } = token;\n return {\n [componentCls]: {\n marginInline: marginXS,\n fontSize,\n lineHeight,\n textAlign: 'center',\n // 原来 &-image 没有父子结构,现在为了外层承担我们的hashId,改成父子结果\n [`${componentCls}-image`]: {\n height: token.emptyImgHeight,\n marginBottom: marginXS,\n opacity: token.opacityImage,\n img: {\n height: '100%'\n },\n svg: {\n height: '100%',\n margin: 'auto'\n }\n },\n // 原来 &-footer 没有父子结构,现在为了外层承担我们的hashId,改成父子结果\n [`${componentCls}-footer`]: {\n marginTop: margin\n },\n '&-normal': {\n marginBlock: marginXL,\n color: token.colorTextDisabled,\n [`${componentCls}-image`]: {\n height: token.emptyImgHeightMD\n }\n },\n '&-small': {\n marginBlock: marginXS,\n color: token.colorTextDisabled,\n [`${componentCls}-image`]: {\n height: token.emptyImgHeightSM\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Empty', token => {\n const {\n componentCls,\n controlHeightLG\n } = token;\n const emptyToken = mergeToken(token, {\n emptyImgCls: `${componentCls}-img`,\n emptyImgHeight: controlHeightLG * 2.5,\n emptyImgHeightMD: controlHeightLG,\n emptyImgHeightSM: controlHeightLG * 0.875\n });\n return [genSharedEmptyStyle(emptyToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport useStyle from './style';\nconst defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nconst simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nconst Empty = _a => {\n var {\n className,\n prefixCls: customizePrefixCls,\n image = defaultEmptyImg,\n description,\n children,\n imageStyle\n } = _a,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('empty', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, locale => {\n const des = typeof description !== 'undefined' ? description : locale.description;\n const alt = typeof des === 'string' ? des : 'empty';\n let imageNode = null;\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames(hashId, prefixCls, {\n [`${prefixCls}-normal`]: image === simpleEmptyImg,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-image`,\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, children));\n }));\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nif (process.env.NODE_ENV !== 'production') {\n Empty.displayName = 'Empty';\n}\nexport default Empty;","import React, { useContext } from 'react';\nimport { ConfigContext } from '.';\nimport Empty from '../empty';\nconst DefaultRenderEmpty = props => {\n const {\n componentName\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefix = getPrefixCls('empty');\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: `${prefix}-small`\n });\n /* istanbul ignore next */\n default:\n // Should never hit if we take all the component into consider.\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n};\nexport default DefaultRenderEmpty;","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\nDoubleLeftOutlined.displayName = 'DoubleLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\nDoubleRightOutlined.displayName = 'DoubleRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleRightOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport classNames from 'classnames';\nvar Pager = function Pager(props) {\n var _classNames;\n var prefixCls = \"\".concat(props.rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), props.active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !props.page), _defineProperty(_classNames, props.className, !!props.className), _classNames));\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n return /*#__PURE__*/React.createElement(\"li\", {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: \"0\"\n }, props.itemRender(props.page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, props.page)));\n};\nexport default Pager;","export default {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport KEYCODE from './KeyCode';\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n var _super = _createSuper(Options);\n function Options() {\n var _this;\n _classCallCheck(this, Options);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n if (goButton || goInputText === '') {\n return;\n }\n _this.setState({\n goInputText: ''\n });\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n quickGo(_this.getValidValue());\n };\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n if (goInputText === '') {\n return;\n }\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n _this.props.quickGo(_this.getValidValue());\n }\n };\n return _this;\n }\n _createClass(Options, [{\n key: \"getValidValue\",\n value: function getValidValue() {\n var goInputText = this.state.goInputText;\n // eslint-disable-next-line no-restricted-globals\n return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText);\n }\n }, {\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = isNaN(Number(a)) ? 0 : Number(a);\n // eslint-disable-next-line no-restricted-globals\n var numberB = isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n if (!changeSize && !quickGo) {\n return null;\n }\n var pageSizeOptions = this.getPageSizeOptions();\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n },\n \"aria-label\": locale.page_size,\n defaultOpen: false\n }, options);\n }\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur,\n \"aria-label\": locale.page\n }), locale.page, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n return Options;\n}(React.Component);\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\nimport React, { cloneElement, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\nfunction noop() {}\nfunction isInteger(v) {\n var value = Number(v);\n return (\n // eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && !isNaN(value) && isFinite(value) && Math.floor(value) === value\n );\n}\nfunction defaultItemRender(page, type, element) {\n return element;\n}\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n var _super = _createSuper(Pagination);\n function Pagination(props) {\n var _this;\n _classCallCheck(this, Pagination);\n _this = _super.call(this, props);\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n return iconNode;\n };\n _this.savePaginationNode = function (node) {\n _this.paginationNode = node;\n };\n _this.isValid = function (page) {\n var total = _this.props.total;\n return isInteger(page) && page !== _this.state.current && isInteger(total) && total > 0;\n };\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n total = _this$props.total;\n var pageSize = _this.state.pageSize;\n if (total <= pageSize) {\n return false;\n }\n return showQuickJumper;\n };\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n var currentInputValue = _this.state.currentInputValue;\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n _this.handleBlur = function (e) {\n var value = _this.getValidValue(e);\n _this.handleChange(value);\n };\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current;\n // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n _this.props.onShowSizeChange(current, size);\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n _this.handleChange = function (page) {\n var _this$props2 = _this.props,\n disabled = _this$props2.disabled,\n onChange = _this$props2.onChange;\n var _this$state = _this.state,\n pageSize = _this$state.pageSize,\n current = _this$state.current,\n currentInputValue = _this$state.currentInputValue;\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n var newPage = page;\n if (page > currentPage) {\n newPage = currentPage;\n } else if (page < 1) {\n newPage = 1;\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: newPage\n });\n }\n if (newPage !== currentInputValue) {\n _this.setState({\n currentInputValue: newPage\n });\n }\n onChange(newPage, pageSize);\n return newPage;\n }\n return current;\n };\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n callback.apply(void 0, restParams);\n }\n };\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n var _current = props.defaultCurrent;\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n var _pageSize = props.defaultPageSize;\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n if (inputValue === '') {\n value = inputValue;\n // eslint-disable-next-line no-restricted-globals\n } else if (isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props3 = this.props,\n showSizeChanger = _this$props3.showSizeChanger,\n total = _this$props3.total,\n totalBoundaryShowSizeChanger = _this$props3.totalBoundaryShowSizeChanger;\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"renderPrev\",\n value: function renderPrev(prevPage) {\n var _this$props4 = this.props,\n prevIcon = _this$props4.prevIcon,\n itemRender = _this$props4.itemRender;\n var prevButton = itemRender(prevPage, 'prev', this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n }\n }, {\n key: \"renderNext\",\n value: function renderNext(nextPage) {\n var _this$props5 = this.props,\n nextIcon = _this$props5.nextIcon,\n itemRender = _this$props5.itemRender;\n var nextButton = itemRender(nextPage, 'next', this.getItemIcon(nextIcon, 'next page'));\n var disabled = !this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props6 = this.props,\n prefixCls = _this$props6.prefixCls,\n className = _this$props6.className,\n style = _this$props6.style,\n disabled = _this$props6.disabled,\n hideOnSinglePage = _this$props6.hideOnSinglePage,\n total = _this$props6.total,\n locale = _this$props6.locale,\n showQuickJumper = _this$props6.showQuickJumper,\n showLessItems = _this$props6.showLessItems,\n showTitle = _this$props6.showTitle,\n showTotal = _this$props6.showTotal,\n simple = _this$props6.simple,\n itemRender = _this$props6.itemRender,\n showPrevNextJumpers = _this$props6.showPrevNextJumpers,\n jumpPrevIcon = _this$props6.jumpPrevIcon,\n jumpNextIcon = _this$props6.jumpNextIcon,\n selectComponentClass = _this$props6.selectComponentClass,\n selectPrefixCls = _this$props6.selectPrefixCls,\n pageSizeOptions = _this$props6.pageSizeOptions;\n var _this$state2 = this.state,\n current = _this$state2.current,\n pageSize = _this$state2.pageSize,\n currentInputValue = _this$state2.currentInputValue;\n\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = _this2.props[key];\n }\n return prev;\n }, {});\n var totalText = showTotal && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, this.renderPrev(prevPage)), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n onBlur: this.handleBlur,\n size: \"3\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: 1,\n className: \"\".concat(prefixCls, \"-item-disabled\")\n })));\n }\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n if (showPrevNextJumpers) {\n jumpPrev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: \"0\",\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page')));\n jumpNext = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: \"0\",\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page')));\n }\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, this.renderPrev(prevPage)), pagerList, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, this.renderNext(nextPage)), /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n if ('current' in props) {\n newState.current = props.current;\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n newState.pageSize = props.pageSize;\n }\n return newState;\n }\n }]);\n return Pagination;\n}(React.Component);\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页',\n page_size: '页码'\n};","/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\nimport * as React from 'react';\nexport var BaseSelectContext = /*#__PURE__*/React.createContext(null);\nexport default function useBaseProps() {\n return React.useContext(BaseSelectContext);\n}","import * as React from 'react';\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 lockRef = React.useRef(null);\n var timeoutRef = React.useRef(null); // Clean up\n\n React.useEffect(function () {\n return function () {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n function doLock(locked) {\n if (locked || lockRef.current === null) {\n lockRef.current = locked;\n }\n\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(function () {\n lockRef.current = null;\n }, duration);\n }\n\n return [function () {\n return lockRef.current;\n }, doLock];\n}","import * as React from 'react';\nimport classNames from 'classnames';\n\nvar TransBtn = function TransBtn(_ref) {\n var className = _ref.className,\n customizeIcon = _ref.customizeIcon,\n customizeIconProps = _ref.customizeIconProps,\n _onMouseDown = _ref.onMouseDown,\n onClick = _ref.onClick,\n children = _ref.children;\n var icon;\n\n if (typeof customizeIcon === 'function') {\n icon = customizeIcon(customizeIconProps);\n } else {\n icon = customizeIcon;\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: 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 : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\n\nexport default TransBtn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { warning } from \"rc-util/es/warning\";\n\nvar Input = function Input(_ref, ref) {\n var _inputNode2, _inputNode2$props;\n\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n inputElement = _ref.inputElement,\n disabled = _ref.disabled,\n tabIndex = _ref.tabIndex,\n autoFocus = _ref.autoFocus,\n autoComplete = _ref.autoComplete,\n editable = _ref.editable,\n activeDescendantId = _ref.activeDescendantId,\n value = _ref.value,\n maxLength = _ref.maxLength,\n _onKeyDown = _ref.onKeyDown,\n _onMouseDown = _ref.onMouseDown,\n _onChange = _ref.onChange,\n onPaste = _ref.onPaste,\n _onCompositionStart = _ref.onCompositionStart,\n _onCompositionEnd = _ref.onCompositionEnd,\n open = _ref.open,\n attrs = _ref.attrs;\n var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n var _inputNode = inputNode,\n originRef = _inputNode.ref,\n originProps = _inputNode.props;\n var onOriginKeyDown = originProps.onKeyDown,\n onOriginChange = originProps.onChange,\n onOriginMouseDown = originProps.onMouseDown,\n onOriginCompositionStart = originProps.onCompositionStart,\n onOriginCompositionEnd = originProps.onCompositionEnd,\n style = originProps.style;\n warning(!('maxLength' in inputNode.props), \"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled.\");\n inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread(_objectSpread({\n type: 'search'\n }, originProps), {}, {\n // Override over origin props\n id: id,\n ref: composeRef(ref, originRef),\n disabled: disabled,\n tabIndex: tabIndex,\n autoComplete: autoComplete || 'off',\n autoFocus: autoFocus,\n className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 ? void 0 : (_inputNode2$props = _inputNode2.props) === null || _inputNode2$props === void 0 ? void 0 : _inputNode2$props.className),\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': activeDescendantId\n }, attrs), {}, {\n value: editable ? value : '',\n maxLength: maxLength,\n readOnly: !editable,\n unselectable: !editable ? 'on' : null,\n style: _objectSpread(_objectSpread({}, style), {}, {\n opacity: editable ? null : 0\n }),\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 onChange: function onChange(event) {\n _onChange(event);\n\n if (onOriginChange) {\n onOriginChange(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 }));\n return inputNode;\n};\n\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nRefInput.displayName = 'Input';\nexport default RefInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n return value !== undefined ? [value] : [];\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;\nexport function hasValue(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isTitleType(title) {\n return ['string', 'number'].includes(_typeof(title));\n}\n\nexport function getTitle(item) {\n var title = undefined;\n\n if (item) {\n if (isTitleType(item.title)) {\n title = item.title.toString();\n } else if (isTitleType(item.label)) {\n title = item.label.toString();\n }\n }\n\n return title;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from \"../TransBtn\";\nimport Input from \"./Input\";\nimport useLayoutEffect from \"../hooks/useLayoutEffect\";\nimport { getTitle } from \"../utils/commonUtil\";\n\nfunction itemKey(value) {\n var _value$key;\n\n return (_value$key = value.key) !== null && _value$key !== void 0 ? _value$key : value.value;\n}\n\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nvar SelectSelector = function SelectSelector(props) {\n var id = props.id,\n prefixCls = props.prefixCls,\n values = props.values,\n open = props.open,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n inputRef = props.inputRef,\n placeholder = props.placeholder,\n disabled = props.disabled,\n mode = props.mode,\n showSearch = props.showSearch,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n maxTagCount = props.maxTagCount,\n maxTagTextLength = props.maxTagTextLength,\n _props$maxTagPlacehol = props.maxTagPlaceholder,\n maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n return \"+ \".concat(omittedValues.length, \" ...\");\n } : _props$maxTagPlacehol,\n tagRender = props.tagRender,\n onToggleOpen = props.onToggleOpen,\n onRemove = props.onRemove,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var measureRef = React.useRef(null);\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n inputWidth = _useState2[0],\n setInputWidth = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n\n var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\"); // ===================== Search ======================\n\n var inputValue = open || mode === \"multiple\" && autoClearSearchValue === false || mode === 'tags' ? searchValue : '';\n var inputEditable = mode === 'tags' || mode === \"multiple\" && autoClearSearchValue === false || showSearch && (open || focused); // We measure width and set to the input immediately\n\n useLayoutEffect(function () {\n setInputWidth(measureRef.current.scrollWidth);\n }, [inputValue]); // ===================== Render ======================\n // >>> Render Selector Node. Includes Item & Rest\n\n function defaultRenderSelector(item, content, itemDisabled, closable, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled)),\n title: getTitle(item)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-item-content\")\n }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n onMouseDown: onPreventMouseDown,\n onClick: onClose,\n customizeIcon: removeIcon\n }, \"\\xD7\"));\n }\n\n function customizeRenderSelector(value, content, itemDisabled, closable, onClose) {\n var onMouseDown = function onMouseDown(e) {\n onPreventMouseDown(e);\n onToggleOpen(!open);\n };\n\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: onMouseDown\n }, tagRender({\n label: content,\n value: value,\n disabled: itemDisabled,\n closable: closable,\n onClose: onClose\n }));\n }\n\n function renderItem(valueItem) {\n var itemDisabled = valueItem.disabled,\n label = valueItem.label,\n value = valueItem.value;\n var closable = !disabled && !itemDisabled;\n var displayLabel = label;\n\n if (typeof maxTagTextLength === 'number') {\n if (typeof label === 'string' || typeof label === 'number') {\n var strLabel = String(displayLabel);\n\n if (strLabel.length > maxTagTextLength) {\n displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n }\n }\n }\n\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onRemove(valueItem);\n };\n\n return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(valueItem, displayLabel, itemDisabled, closable, onClose);\n }\n\n function renderRest(omittedValues) {\n var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n return defaultRenderSelector({\n title: content\n }, content, false);\n } // >>> Input Node\n\n\n var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(selectionPrefixCls, \"-search\"),\n style: {\n width: inputWidth\n },\n onFocus: function onFocus() {\n setFocused(true);\n },\n onBlur: function onBlur() {\n setFocused(false);\n }\n }, /*#__PURE__*/React.createElement(Input, {\n ref: 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,\n activeDescendantId: activeDescendantId,\n value: inputValue,\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 }), /*#__PURE__*/React.createElement(\"span\", {\n ref: measureRef,\n className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n \"aria-hidden\": true\n }, inputValue, \"\\xA0\")); // >>> Selections\n\n var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n data: values,\n renderItem: renderItem,\n renderRest: renderRest,\n suffix: inputNode,\n itemKey: itemKey,\n maxCount: maxTagCount\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n }, placeholder));\n};\n\nexport default SelectSelector;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from \"../utils/commonUtil\";\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\n\nexport default function useLayoutEffect(effect, deps) {\n // Never happen in test env\n if (isBrowserClient) {\n /* istanbul ignore next */\n React.useLayoutEffect(effect, deps);\n } else {\n React.useEffect(effect, deps);\n }\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from \"./Input\";\nimport { getTitle } from \"../utils/commonUtil\";\n\nvar SingleSelector = function SingleSelector(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n id = props.id,\n inputRef = props.inputRef,\n disabled = props.disabled,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n mode = props.mode,\n open = props.open,\n values = props.values,\n placeholder = props.placeholder,\n tabIndex = props.tabIndex,\n showSearch = props.showSearch,\n searchValue = props.searchValue,\n activeValue = props.activeValue,\n maxLength = props.maxLength,\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\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputChanged = _React$useState2[0],\n setInputChanged = _React$useState2[1];\n\n var combobox = mode === 'combobox';\n var inputEditable = combobox || showSearch;\n var item = values[0];\n var inputValue = searchValue || '';\n\n if (combobox && activeValue && !inputChanged) {\n inputValue = activeValue;\n }\n\n React.useEffect(function () {\n if (combobox) {\n setInputChanged(false);\n }\n }, [combobox, activeValue]); // Not show text when closed expect combobox mode\n\n var hasTextInput = mode !== 'combobox' && !open && !showSearch ? false : !!inputValue; // Get title\n\n var title = getTitle(item);\n\n var renderPlaceholder = function renderPlaceholder() {\n if (item) {\n return null;\n }\n\n var hiddenStyle = hasTextInput ? {\n visibility: 'hidden'\n } : undefined;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\"),\n style: hiddenStyle\n }, placeholder);\n };\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n ref: 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,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: function onChange(e) {\n setInputChanged(true);\n onInputChange(e);\n },\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true),\n maxLength: combobox ? maxLength : undefined\n })), !combobox && item && !hasTextInput && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-item\"),\n title: title\n }, item.label), renderPlaceholder());\n};\n\nexport default SingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from \"./MultipleSelector\";\nimport SingleSelector from \"./SingleSelector\";\nimport useLock from \"../hooks/useLock\";\nimport { isValidateOpenKey } from \"../utils/keyUtil\";\n\nvar Selector = function Selector(props, ref) {\n var inputRef = useRef(null);\n var compositionStatusRef = useRef(false);\n var prefixCls = props.prefixCls,\n open = props.open,\n mode = props.mode,\n showSearch = props.showSearch,\n tokenWithEnter = props.tokenWithEnter,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSubmit = props.onSearchSubmit,\n onToggleOpen = props.onToggleOpen,\n onInputKeyDown = props.onInputKeyDown,\n domRef = props.domRef; // ======================= Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n inputRef.current.focus();\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n }); // ====================== 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 (onInputKeyDown) {\n onInputKeyDown(event);\n }\n\n if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !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 onSearchSubmit === null || onSearchSubmit === void 0 ? void 0 : onSearchSubmit(event.target.value);\n }\n\n if (isValidateOpenKey(which)) {\n 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 pastedTextRef = useRef(null);\n\n var triggerOnSearch = function triggerOnSearch(value) {\n if (onSearch(value, true, compositionStatusRef.current) !== false) {\n onToggleOpen(true);\n }\n };\n\n var onInputCompositionStart = function onInputCompositionStart() {\n compositionStatusRef.current = true;\n };\n\n var onInputCompositionEnd = function onInputCompositionEnd(e) {\n compositionStatusRef.current = false; // Trigger search again to support `tokenSeparators` with typewriting\n\n if (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 (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n // CRLF will be treated as a single space for input element\n var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n value = value.replace(replacedText, pastedTextRef.current);\n }\n\n pastedTextRef.current = null;\n triggerOnSearch(value);\n };\n\n var onInputPaste = function onInputPaste(e) {\n var clipboardData = e.clipboardData;\n var value = clipboardData.getData('text');\n pastedTextRef.current = 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(); // when mode is combobox, don't prevent default behavior\n // https://github.com/ant-design/ant-design/issues/37320\n\n if (event.target !== inputRef.current && !inputMouseDown && mode !== 'combobox') {\n event.preventDefault();\n }\n\n if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n if (open && autoClearSearchValue !== false) {\n onSearch('', true, false);\n }\n\n onToggleOpen();\n }\n }; // ================= Inner Selector ==================\n\n\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 = mode === 'multiple' || mode === 'tags' ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: \"\".concat(prefixCls, \"-selector\"),\n onClick: onClick,\n onMouseDown: onMouseDown\n }, selectNode);\n};\n\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;","import KeyCode from \"rc-util/es/KeyCode\";\n/** keyCode Judgment function */\n\nexport function isValidateOpenKey(currentKeyCode) {\n return ![// System function button\n KeyCode.ESC, KeyCode.SHIFT, KeyCode.BACKSPACE, KeyCode.TAB, KeyCode.WIN_KEY, KeyCode.ALT, KeyCode.META, KeyCode.WIN_KEY_RIGHT, KeyCode.CTRL, KeyCode.SEMICOLON, KeyCode.EQUALS, KeyCode.CAPS_LOCK, KeyCode.CONTEXT_MENU, // F1-F12\n KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6, KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12].includes(currentKeyCode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"containerWidth\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"placement\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\", \"onPopupVisibleChange\", \"onPopupMouseEnter\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\n\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n var adjustX = dropdownMatchSelectWidth === true ? 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 = function SelectTrigger(props, ref) {\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n visible = props.visible,\n children = props.children,\n popupElement = props.popupElement,\n containerWidth = props.containerWidth,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n placement = props.placement,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n empty = props.empty,\n getTriggerDOMNode = props.getTriggerDOMNode,\n onPopupVisibleChange = props.onPopupVisibleChange,\n onPopupMouseEnter = props.onPopupMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var popupNode = popupElement;\n\n if (dropdownRender) {\n popupNode = dropdownRender(popupElement);\n }\n\n var builtInPlacements = React.useMemo(function () {\n return getBuiltInPlacements(dropdownMatchSelectWidth);\n }, [dropdownMatchSelectWidth]); // ===================== Motion ======================\n\n var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName; // ======================= Ref =======================\n\n var popupRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n getPopupElement: function getPopupElement() {\n return popupRef.current;\n }\n };\n });\n\n var popupStyle = _objectSpread({\n minWidth: containerWidth\n }, dropdownStyle);\n\n if (typeof dropdownMatchSelectWidth === 'number') {\n popupStyle.width = dropdownMatchSelectWidth;\n } else if (dropdownMatchSelectWidth) {\n popupStyle.width = containerWidth;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n showAction: onPopupVisibleChange ? ['click'] : [],\n hideAction: onPopupVisibleChange ? ['click'] : [],\n popupPlacement: placement || (direction === 'rtl' ? 'bottomRight' : 'bottomLeft'),\n builtinPlacements: builtInPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: mergedTransitionName,\n popup: /*#__PURE__*/React.createElement(\"div\", {\n ref: popupRef,\n onMouseEnter: onPopupMouseEnter\n }, popupNode),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n popupStyle: popupStyle,\n getTriggerDOMNode: getTriggerDOMNode,\n onPopupVisibleChange: onPopupVisibleChange\n }), children);\n};\n\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nRefSelectTrigger.displayName = 'SelectTrigger';\nexport default RefSelectTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\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\nexport function fillFieldNames(fieldNames, childrenAsData) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n options = _ref.options;\n\n return {\n label: label || (childrenAsData ? 'children' : 'label'),\n value: value || 'value',\n options: options || 'options'\n };\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\nexport function flattenOptions(options) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n fieldNames = _ref2.fieldNames,\n childrenAsData = _ref2.childrenAsData;\n\n var flattenList = [];\n\n var _fillFieldNames = fillFieldNames(fieldNames, false),\n fieldLabel = _fillFieldNames.label,\n fieldValue = _fillFieldNames.value,\n fieldOptions = _fillFieldNames.options;\n\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n var label = data[fieldLabel];\n\n if (isGroupOption || !(fieldOptions in data)) {\n var value = data[fieldValue]; // Option\n\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data,\n label: label,\n value: value\n });\n } else {\n var grpLabel = label;\n\n if (grpLabel === undefined && childrenAsData) {\n grpLabel = data.label;\n } // Option Group\n\n\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data,\n label: grpLabel\n });\n dig(data[fieldOptions], true);\n }\n });\n }\n\n dig(options, false);\n return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nexport function injectPropsWithOption(option) {\n var newOption = _objectSpread({}, 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}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n\n var match = false;\n\n function separate(str, _ref3) {\n var _ref4 = _toArray(_ref3),\n token = _ref4[0],\n restTokens = _ref4.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}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"showSearch\", \"tagRender\", \"direction\", \"omitDomProps\", \"displayValues\", \"onDisplayValuesChange\", \"emptyOptions\", \"notFoundContent\", \"onClear\", \"mode\", \"disabled\", \"loading\", \"getInputElement\", \"getRawInputElement\", \"open\", \"defaultOpen\", \"onDropdownVisibleChange\", \"activeValue\", \"onActiveValueChange\", \"activeDescendantId\", \"searchValue\", \"autoClearSearchValue\", \"onSearch\", \"onSearchSplit\", \"tokenSeparators\", \"allowClear\", \"showArrow\", \"inputIcon\", \"clearIcon\", \"OptionList\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"placement\", \"getPopupContainer\", \"showAction\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\"];\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { BaseSelectContext } from \"./hooks/useBaseProps\";\nimport useDelayReset from \"./hooks/useDelayReset\";\nimport useLock from \"./hooks/useLock\";\nimport useSelectTriggerControl from \"./hooks/useSelectTriggerControl\";\nimport Selector from \"./Selector\";\nimport SelectTrigger from \"./SelectTrigger\";\nimport TransBtn from \"./TransBtn\";\nimport { getSeparatedContent } from \"./utils/valueUtil\";\nvar DEFAULT_OMIT_PROPS = ['value', 'onChange', 'removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'onPopupScroll', 'tabIndex'];\nexport function isMultiple(mode) {\n return mode === 'tags' || mode === 'multiple';\n}\nvar BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _customizeRawInputEle, _classNames2;\n\n var id = props.id,\n prefixCls = props.prefixCls,\n className = props.className,\n showSearch = props.showSearch,\n tagRender = props.tagRender,\n direction = props.direction,\n omitDomProps = props.omitDomProps,\n displayValues = props.displayValues,\n onDisplayValuesChange = props.onDisplayValuesChange,\n emptyOptions = props.emptyOptions,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n onClear = props.onClear,\n mode = props.mode,\n disabled = props.disabled,\n loading = props.loading,\n getInputElement = props.getInputElement,\n getRawInputElement = props.getRawInputElement,\n open = props.open,\n defaultOpen = props.defaultOpen,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n activeValue = props.activeValue,\n onActiveValueChange = props.onActiveValueChange,\n activeDescendantId = props.activeDescendantId,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSplit = props.onSearchSplit,\n tokenSeparators = props.tokenSeparators,\n allowClear = props.allowClear,\n showArrow = props.showArrow,\n inputIcon = props.inputIcon,\n clearIcon = props.clearIcon,\n OptionList = props.OptionList,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n _props$showAction = props.showAction,\n showAction = _props$showAction === void 0 ? [] : _props$showAction,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyUp = props.onKeyUp,\n onKeyDown = props.onKeyDown,\n onMouseDown = props.onMouseDown,\n restProps = _objectWithoutProperties(props, _excluded); // ============================== MISC ==============================\n\n\n var multiple = isMultiple(mode);\n var mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n\n var domProps = _objectSpread({}, restProps);\n\n DEFAULT_OMIT_PROPS.forEach(function (propName) {\n delete domProps[propName];\n });\n omitDomProps === null || omitDomProps === void 0 ? void 0 : omitDomProps.forEach(function (propName) {\n delete domProps[propName];\n }); // ============================= Mobile =============================\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n\n React.useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []); // ============================== Refs ==============================\n\n var containerRef = React.useRef(null);\n var selectorDomRef = React.useRef(null);\n var triggerRef = React.useRef(null);\n var selectorRef = React.useRef(null);\n var listRef = React.useRef(null);\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]; // =========================== Imperative ===========================\n\n\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current, _selectorRef$current2;\n\n return {\n focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n scrollTo: function scrollTo(arg) {\n var _listRef$current;\n\n return (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(arg);\n }\n };\n }); // ========================== Search Value ==========================\n\n var mergedSearchValue = React.useMemo(function () {\n var _displayValues$;\n\n if (mode !== 'combobox') {\n return searchValue;\n }\n\n var val = (_displayValues$ = displayValues[0]) === null || _displayValues$ === void 0 ? void 0 : _displayValues$.value;\n return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n }, [searchValue, mode, displayValues]); // ========================== Custom Input ==========================\n // Only works in `combobox`\n\n var customizeInputElement = mode === 'combobox' && typeof getInputElement === 'function' && getInputElement() || null; // Used for customize replacement for `rc-cascader`\n\n var customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();\n var customizeRawInputRef = useComposeRef(selectorDomRef, customizeRawInputElement === null || customizeRawInputElement === void 0 ? void 0 : (_customizeRawInputEle = customizeRawInputElement.props) === null || _customizeRawInputEle === void 0 ? void 0 : _customizeRawInputEle.ref); // ============================== Open ==============================\n\n var _useMergedState = useMergedState(undefined, {\n defaultValue: defaultOpen,\n value: open\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerOpen = _useMergedState2[0],\n setInnerOpen = _useMergedState2[1];\n\n var mergedOpen = innerOpen; // Not trigger `open` in `combobox` when `notFoundContent` is empty\n\n var emptyListContent = !notFoundContent && emptyOptions;\n\n if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n mergedOpen = false;\n }\n\n var triggerOpen = emptyListContent ? false : mergedOpen;\n var onToggleOpen = React.useCallback(function (newOpen) {\n var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n\n if (!disabled) {\n setInnerOpen(nextOpen);\n\n if (mergedOpen !== nextOpen) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextOpen);\n }\n }\n }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]); // ============================= Search =============================\n\n var tokenWithEnter = React.useMemo(function () {\n return (tokenSeparators || []).some(function (tokenSeparator) {\n return ['\\n', '\\r\\n'].includes(tokenSeparator);\n });\n }, [tokenSeparators]);\n\n var onInternalSearch = function onInternalSearch(searchText, fromTyping, isCompositing) {\n var ret = true;\n var newSearchText = searchText;\n onActiveValueChange === null || onActiveValueChange === void 0 ? void 0 : onActiveValueChange(null); // Check if match the `tokenSeparators`\n\n var patchLabels = isCompositing ? null : getSeparatedContent(searchText, tokenSeparators); // Ignore combobox since it's not split-able\n\n if (mode !== 'combobox' && patchLabels) {\n newSearchText = '';\n onSearchSplit === null || onSearchSplit === void 0 ? void 0 : onSearchSplit(patchLabels); // Should close when paste finish\n\n onToggleOpen(false); // Tell Selector that break next actions\n\n ret = false;\n }\n\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText, {\n source: fromTyping ? 'typing' : 'effect'\n });\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 onInternalSearchSubmit = function onInternalSearchSubmit(searchText) {\n // prevent empty tags from appearing when you click the Enter button\n if (!searchText || !searchText.trim()) {\n return;\n }\n\n onSearch(searchText, {\n source: 'submit'\n });\n }; // Close will clean up single mode search text\n\n\n React.useEffect(function () {\n if (!mergedOpen && !multiple && mode !== 'combobox') {\n onInternalSearch('', false, false);\n }\n }, [mergedOpen]); // ============================ Disabled ============================\n // Close dropdown & remove focus state when disabled change\n\n React.useEffect(function () {\n if (innerOpen && disabled) {\n setInnerOpen(false);\n }\n\n if (disabled) {\n setMockFocused(false);\n }\n }, [disabled]); // ============================ 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 (mode !== 'combobox') {\n event.preventDefault();\n } // We only manage open state here, close logic should handle by list component\n\n\n if (!mergedOpen) {\n onToggleOpen(true);\n }\n }\n\n setClearLock(!!mergedSearchValue); // Remove value by `backspace`\n\n if (which === KeyCode.BACKSPACE && !clearLock && multiple && !mergedSearchValue && displayValues.length) {\n var cloneDisplayValues = _toConsumableArray(displayValues);\n\n var removedDisplayValue = null;\n\n for (var i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n var current = cloneDisplayValues[i];\n\n if (!current.disabled) {\n cloneDisplayValues.splice(i, 1);\n removedDisplayValue = current;\n break;\n }\n }\n\n if (removedDisplayValue) {\n onDisplayValuesChange(cloneDisplayValues, {\n type: 'remove',\n values: [removedDisplayValue]\n });\n }\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n if (mergedOpen && listRef.current) {\n var _listRef$current2;\n\n (_listRef$current2 = listRef.current).onKeyDown.apply(_listRef$current2, [event].concat(rest));\n }\n\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown.apply(void 0, [event].concat(rest));\n }; // KeyUp\n\n\n var onInternalKeyUp = function onInternalKeyUp(event) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n\n if (mergedOpen && listRef.current) {\n var _listRef$current3;\n\n (_listRef$current3 = listRef.current).onKeyUp.apply(_listRef$current3, [event].concat(rest));\n }\n\n onKeyUp === null || onKeyUp === void 0 ? void 0 : onKeyUp.apply(void 0, [event].concat(rest));\n }; // ============================ Selector ============================\n\n\n var onSelectorRemove = function onSelectorRemove(val) {\n var newValues = displayValues.filter(function (i) {\n return i !== val;\n });\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [val]\n });\n }; // ========================== Focus / Blur ==========================\n\n /** Record real focus status */\n\n\n var focusRef = React.useRef(false);\n\n var onContainerFocus = function onContainerFocus() {\n setMockFocused(true);\n\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus.apply(void 0, arguments);\n } // `showAction` should handle `focus` if set\n\n\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n\n focusRef.current = true;\n };\n\n var onContainerBlur = function onContainerBlur() {\n setMockFocused(false, function () {\n focusRef.current = false;\n onToggleOpen(false);\n });\n\n if (disabled) {\n return;\n }\n\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n onSearch(mergedSearchValue, {\n source: 'submit'\n });\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n onSearch('', {\n source: 'blur'\n });\n }\n }\n\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n }; // Give focus back of Select\n\n\n var activeTimeoutIds = [];\n React.useEffect(function () {\n return function () {\n activeTimeoutIds.forEach(function (timeoutId) {\n return clearTimeout(timeoutId);\n });\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n };\n }, []);\n\n var onInternalMouseDown = function onInternalMouseDown(event) {\n var _triggerRef$current;\n\n var target = event.target;\n var popupElement = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getPopupElement(); // We should give focus back to selector if clicked item is not focusable\n\n if (popupElement && popupElement.contains(target)) {\n var timeoutId = 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 && !popupElement.contains(document.activeElement)) {\n var _selectorRef$current3;\n\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 ? void 0 : _selectorRef$current3.focus();\n }\n });\n activeTimeoutIds.push(timeoutId);\n }\n\n for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n restArgs[_key3 - 1] = arguments[_key3];\n }\n\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown.apply(void 0, [event].concat(restArgs));\n }; // ============================ Dropdown ============================\n\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n containerWidth = _React$useState4[0],\n setContainerWidth = _React$useState4[1];\n\n var _React$useState5 = React.useState({}),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n forceUpdate = _React$useState6[1]; // We need force update here since popup dom is render async\n\n\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n\n useLayoutEffect(function () {\n if (triggerOpen) {\n var _containerRef$current;\n\n var newWidth = Math.ceil((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetWidth);\n\n if (containerWidth !== newWidth && !Number.isNaN(newWidth)) {\n setContainerWidth(newWidth);\n }\n }\n }, [triggerOpen]); // Used for raw custom input trigger\n\n var onTriggerVisibleChange;\n\n if (customizeRawInputElement) {\n onTriggerVisibleChange = function onTriggerVisibleChange(newOpen) {\n onToggleOpen(newOpen);\n };\n } // Close when click on non-select element\n\n\n useSelectTriggerControl(function () {\n var _triggerRef$current2;\n\n return [containerRef.current, (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.getPopupElement()];\n }, triggerOpen, onToggleOpen, !!customizeRawInputElement); // ============================ Context =============================\n\n var baseSelectContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n notFoundContent: notFoundContent,\n open: mergedOpen,\n triggerOpen: triggerOpen,\n id: id,\n showSearch: mergedShowSearch,\n multiple: multiple,\n toggleOpen: onToggleOpen\n });\n }, [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]); // ==================================================================\n // == Render ==\n // ==================================================================\n // ============================= Arrow ==============================\n\n var mergedShowArrow = showArrow !== undefined ? showArrow : loading || !multiple && mode !== 'combobox';\n var arrowNode;\n\n if (mergedShowArrow) {\n arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: 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 });\n } // ============================= Clear ==============================\n\n\n var clearNode;\n\n var onClearMouseDown = function onClearMouseDown() {\n var _selectorRef$current4;\n\n onClear === null || onClear === void 0 ? void 0 : onClear();\n (_selectorRef$current4 = selectorRef.current) === null || _selectorRef$current4 === void 0 ? void 0 : _selectorRef$current4.focus();\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues\n });\n onInternalSearch('', false, false);\n };\n\n if (!disabled && allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {\n clearNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(prefixCls, \"-clear\"),\n onMouseDown: onClearMouseDown,\n customizeIcon: clearIcon\n }, \"\\xD7\");\n } // =========================== OptionList ===========================\n\n\n var optionList = /*#__PURE__*/React.createElement(OptionList, {\n ref: listRef\n }); // ============================= Select =============================\n\n var mergedClassName = classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mockFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-multiple\"), multiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-single\"), !multiple), _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)); // >>> Selector\n\n var selectorNode = /*#__PURE__*/React.createElement(SelectTrigger, {\n ref: triggerRef,\n disabled: disabled,\n prefixCls: prefixCls,\n visible: triggerOpen,\n popupElement: optionList,\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 placement: placement,\n getPopupContainer: getPopupContainer,\n empty: emptyOptions,\n getTriggerDOMNode: function getTriggerDOMNode() {\n return selectorDomRef.current;\n },\n onPopupVisibleChange: onTriggerVisibleChange,\n onPopupMouseEnter: onPopupMouseEnter\n }, customizeRawInputElement ? /*#__PURE__*/React.cloneElement(customizeRawInputElement, {\n ref: customizeRawInputRef\n }) : /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n domRef: selectorDomRef,\n prefixCls: prefixCls,\n inputElement: customizeInputElement,\n ref: selectorRef,\n id: id,\n showSearch: mergedShowSearch,\n autoClearSearchValue: autoClearSearchValue,\n mode: mode,\n activeDescendantId: activeDescendantId,\n tagRender: tagRender,\n values: displayValues,\n open: mergedOpen,\n onToggleOpen: onToggleOpen,\n activeValue: activeValue,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n onSearchSubmit: onInternalSearchSubmit,\n onRemove: onSelectorRemove,\n tokenWithEnter: tokenWithEnter\n }))); // >>> Render\n\n var renderNode; // Render raw\n\n if (customizeRawInputElement) {\n renderNode = selectorNode;\n } else {\n renderNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergedClassName\n }, domProps, {\n ref: containerRef,\n onMouseDown: onInternalMouseDown,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onFocus: onContainerFocus,\n onBlur: onContainerBlur\n }), mockFocused && !mergedOpen && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: 'hidden',\n opacity: 0\n },\n \"aria-live\": \"polite\"\n }, \"\".concat(displayValues.map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return ['number', 'string'].includes(_typeof(label)) ? label : value;\n }).join(', '))), selectorNode, arrowNode, clearNode);\n }\n\n return /*#__PURE__*/React.createElement(BaseSelectContext.Provider, {\n value: baseSelectContext\n }, renderNode);\n}); // Set display name for dev\n\nif (process.env.NODE_ENV !== 'production') {\n BaseSelect.displayName = 'BaseSelect';\n}\n\nexport default BaseSelect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\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\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n bool = _React$useState2[0],\n setBool = _React$useState2[1];\n\n var delayRef = React.useRef(null);\n\n var cancelLatest = function cancelLatest() {\n window.clearTimeout(delayRef.current);\n };\n\n React.useEffect(function () {\n return cancelLatest;\n }, []);\n\n var delaySetBool = function delaySetBool(value, callback) {\n cancelLatest();\n delayRef.current = window.setTimeout(function () {\n setBool(value);\n\n if (callback) {\n callback();\n }\n }, timeout);\n };\n\n return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen, customizedTrigger) {\n var propsRef = React.useRef(null);\n propsRef.current = {\n open: open,\n triggerOpen: triggerOpen,\n customizedTrigger: customizedTrigger\n };\n React.useEffect(function () {\n function onGlobalMouseDown(event) {\n var _propsRef$current;\n\n // If trigger is customized, Trigger will take control of popupVisible\n if ((_propsRef$current = propsRef.current) !== null && _propsRef$current !== void 0 && _propsRef$current.customizedTrigger) {\n return;\n }\n\n var target = event.target;\n\n if (target.shadowRoot && event.composed) {\n target = event.composedPath()[0] || target;\n }\n\n if (propsRef.current.open && elements().filter(function (element) {\n return element;\n }).every(function (element) {\n return !element.contains(target) && element !== target;\n })) {\n // Should trigger close\n propsRef.current.triggerOpen(false);\n }\n }\n\n window.addEventListener('mousedown', onGlobalMouseDown);\n return function () {\n return window.removeEventListener('mousedown', onGlobalMouseDown);\n };\n }, []);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { toArray } from \"../utils/commonUtil\";\nimport { injectPropsWithOption } from \"../utils/valueUtil\";\n\nfunction includes(test, search) {\n return toArray(test).join('').toUpperCase().includes(search);\n}\n\nexport default (function (options, fieldNames, searchValue, filterOption, optionFilterProp) {\n return React.useMemo(function () {\n if (!searchValue || filterOption === false) {\n return options;\n }\n\n var fieldOptions = fieldNames.options,\n fieldLabel = fieldNames.label,\n fieldValue = fieldNames.value;\n var filteredOptions = [];\n var customizeFilter = typeof filterOption === 'function';\n var upperSearch = searchValue.toUpperCase();\n var filterFunc = customizeFilter ? filterOption : function (_, option) {\n // Use provided `optionFilterProp`\n if (optionFilterProp) {\n return includes(option[optionFilterProp], upperSearch);\n } // Auto select `label` or `value` by option type\n\n\n if (option[fieldOptions]) {\n // hack `fieldLabel` since `OptionGroup` children is not `label`\n return includes(option[fieldLabel !== 'children' ? fieldLabel : 'label'], upperSearch);\n }\n\n return includes(option[fieldValue], upperSearch);\n };\n var wrapOption = customizeFilter ? function (opt) {\n return injectPropsWithOption(opt);\n } : function (opt) {\n return opt;\n };\n options.forEach(function (item) {\n // Group should check child options\n if (item[fieldOptions]) {\n // Check group first\n var matchGroup = filterFunc(searchValue, wrapOption(item));\n\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item[fieldOptions].filter(function (subItem) {\n return filterFunc(searchValue, wrapOption(subItem));\n });\n\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, fieldOptions, subOptions)));\n }\n }\n\n return;\n }\n\n if (filterFunc(searchValue, wrapOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n }, [options, filterOption, optionFilterProp, searchValue, fieldNames]);\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\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}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n\n React.useEffect(function () {\n setInnerId(\"rc_select_\".concat(getUUID()));\n }, []);\n return id || innerId;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"],\n _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\n\nfunction convertNodeToOption(node) {\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\n\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n\n var _ref2 = node,\n isSelectOptGroup = _ref2.type.isSelectOptGroup,\n key = _ref2.key,\n _ref2$props = _ref2.props,\n children = _ref2$props.children,\n restProps = _objectWithoutProperties(_ref2$props, _excluded2);\n\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import * as React from 'react';\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\n\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\n\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\n\nOption.isSelectOption = true;\nexport default Option;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offset = _ref.offset,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize,\n innerProps = _ref.innerProps;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n if (offset !== undefined) {\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, {\n transform: \"translateY(\".concat(offset, \"px)\"),\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, innerProps), children)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nvar MIN_SIZE = 20;\nfunction getPageY(e) {\n return 'touches' in e ? e.touches[0].pageY : e.pageY;\n}\nvar ScrollBar = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollBar, _React$Component);\n var _super = _createSuper(ScrollBar);\n function ScrollBar() {\n var _this;\n _classCallCheck(this, ScrollBar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.moveRaf = null;\n _this.scrollbarRef = /*#__PURE__*/React.createRef();\n _this.thumbRef = /*#__PURE__*/React.createRef();\n _this.visibleTimeout = null;\n _this.state = {\n dragging: false,\n pageY: null,\n startTop: null,\n visible: false\n };\n _this.delayHidden = function () {\n clearTimeout(_this.visibleTimeout);\n _this.setState({\n visible: true\n });\n _this.visibleTimeout = setTimeout(function () {\n _this.setState({\n visible: false\n });\n }, 2000);\n };\n _this.onScrollbarTouchStart = function (e) {\n e.preventDefault();\n };\n _this.onContainerMouseDown = function (e) {\n e.stopPropagation();\n e.preventDefault();\n };\n _this.patchEvents = function () {\n window.addEventListener('mousemove', _this.onMouseMove);\n window.addEventListener('mouseup', _this.onMouseUp);\n _this.thumbRef.current.addEventListener('touchmove', _this.onMouseMove);\n _this.thumbRef.current.addEventListener('touchend', _this.onMouseUp);\n };\n _this.removeEvents = function () {\n var _this$scrollbarRef$cu;\n window.removeEventListener('mousemove', _this.onMouseMove);\n window.removeEventListener('mouseup', _this.onMouseUp);\n (_this$scrollbarRef$cu = _this.scrollbarRef.current) === null || _this$scrollbarRef$cu === void 0 ? void 0 : _this$scrollbarRef$cu.removeEventListener('touchstart', _this.onScrollbarTouchStart);\n if (_this.thumbRef.current) {\n _this.thumbRef.current.removeEventListener('touchstart', _this.onMouseDown);\n _this.thumbRef.current.removeEventListener('touchmove', _this.onMouseMove);\n _this.thumbRef.current.removeEventListener('touchend', _this.onMouseUp);\n }\n raf.cancel(_this.moveRaf);\n };\n _this.onMouseDown = function (e) {\n var onStartMove = _this.props.onStartMove;\n _this.setState({\n dragging: true,\n pageY: getPageY(e),\n startTop: _this.getTop()\n });\n onStartMove();\n _this.patchEvents();\n e.stopPropagation();\n e.preventDefault();\n };\n _this.onMouseMove = function (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 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 _this.onMouseUp = function () {\n var onStopMove = _this.props.onStopMove;\n _this.setState({\n dragging: false\n });\n onStopMove();\n _this.removeEvents();\n };\n _this.getSpinHeight = function () {\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 _this.getEnableScrollRange = function () {\n var _this$props2 = _this.props,\n scrollHeight = _this$props2.scrollHeight,\n height = _this$props2.height;\n return scrollHeight - height || 0;\n };\n _this.getEnableHeightRange = function () {\n var height = _this.props.height;\n var spinHeight = _this.getSpinHeight();\n return height - spinHeight || 0;\n };\n _this.getTop = function () {\n var scrollTop = _this.props.scrollTop;\n var enableScrollRange = _this.getEnableScrollRange();\n var enableHeightRange = _this.getEnableHeightRange();\n if (scrollTop === 0 || enableScrollRange === 0) {\n return 0;\n }\n var ptg = scrollTop / enableScrollRange;\n return ptg * enableHeightRange;\n };\n _this.showScroll = function () {\n var _this$props3 = _this.props,\n height = _this$props3.height,\n scrollHeight = _this$props3.scrollHeight;\n return scrollHeight > height;\n };\n return _this;\n }\n _createClass(ScrollBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollbarRef.current.addEventListener('touchstart', this.onScrollbarTouchStart);\n this.thumbRef.current.addEventListener('touchstart', this.onMouseDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.scrollTop !== this.props.scrollTop) {\n this.delayHidden();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeEvents();\n clearTimeout(this.visibleTimeout);\n }\n }, {\n key: \"render\",\n value:\n // ====================== Render =======================\n function render() {\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();\n var top = this.getTop();\n var canScroll = this.showScroll();\n var mergedVisible = canScroll && visible;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.scrollbarRef,\n className: classNames(\"\".concat(prefixCls, \"-scrollbar\"), _defineProperty({}, \"\".concat(prefixCls, \"-scrollbar-show\"), canScroll)),\n style: {\n width: 8,\n top: 0,\n bottom: 0,\n right: 0,\n position: 'absolute',\n display: mergedVisible ? null : 'none'\n },\n onMouseDown: this.onContainerMouseDown,\n onMouseMove: this.delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.thumbRef,\n className: 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: 99,\n cursor: 'pointer',\n userSelect: 'none'\n },\n onMouseDown: this.onMouseDown\n }));\n }\n }]);\n return ScrollBar;\n}(React.Component);\nexport { ScrollBar as default };","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n this.maps = void 0;\n this.maps = Object.create(null);\n }\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n return CacheMap;\n}();\nexport default CacheMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { findListDiffIndex } from '../utils/algorithmUtil';\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2;\n // Balance\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n if (index % 2) {\n return start + stepIndex + 1;\n }\n return start - stepIndex;\n }\n // One is out of range\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n return start + (index - beforeCount);\n}\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n return notExistKey;\n }\n // Loop to find diff one\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\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;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n }\n // Pass to ref since global add is in closure\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll =\n // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top ||\n // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n return !lockRef.current && originScroll;\n };\n});","import { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchYRef = useRef(0);\n var elementRef = useRef(null);\n // Smooth scroll\n var intervalRef = useRef(null);\n /* eslint-disable prefer-const */\n var cleanUpEvents;\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n if (callback(offsetY)) {\n e.preventDefault();\n }\n // Smooth interval\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n offsetY *= SMOOTH_PTG;\n if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n return function () {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"component\", \"onScroll\", \"onVisibleChange\", \"innerProps\"];\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport Filler from './Filler';\nimport ScrollBar from './ScrollBar';\nimport useChildren from './hooks/useChildren';\nimport useHeights from './hooks/useHeights';\nimport useScrollTo from './hooks/useScrollTo';\nimport useDiffItem from './hooks/useDiffItem';\nimport useFrameWheel from './hooks/useFrameWheel';\nimport useMobileTouchMove from './hooks/useMobileTouchMove';\nimport useOriginScroll from './hooks/useOriginScroll';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n onVisibleChange = props.onVisibleChange,\n innerProps = props.innerProps,\n restProps = _objectWithoutProperties(props, _excluded);\n // ================================= MISC =================================\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && itemHeight * data.length > height;\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n scrollTop = _useState2[0],\n setScrollTop = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrollMoving = _useState4[0],\n setScrollMoving = _useState4[1];\n var mergedClassName = classNames(prefixCls, className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n var scrollBarRef = useRef(); // Hack on scrollbar to enable flash call\n // =============================== Item Key ===============================\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n };\n // ================================ Scroll ================================\n function syncScrollTop(newTop) {\n setScrollTop(function (origin) {\n var value;\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n }\n // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n diffItemRef.current = diffItem;\n // ================================ Height ================================\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3];\n // ========================== Visible Calculation =========================\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n // Always use virtual scroll bar in avoid shaking\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n for (var i = 0; i < dataLen; i += 1) {\n var item = mergedData[i];\n var key = getKey(item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n // Check item top in the range\n if (currentItemBottom >= scrollTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n }\n // Check item bottom in the range. We will render additional one item for motion usage\n if (currentItemBottom > scrollTop + height && endIndex === undefined) {\n endIndex = i;\n }\n itemTop = currentItemBottom;\n }\n // When scrollTop at the end but data cut to small count will reach this\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n endIndex = Math.ceil(height / itemHeight);\n }\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n }\n // Give cache to improve scroll experience\n endIndex = Math.min(endIndex + 1, mergedData.length);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, scrollTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n offset = _React$useMemo.offset;\n rangeRef.current.start = start;\n rangeRef.current.end = end;\n // =============================== In Range ===============================\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n var isScrollAtTop = scrollTop <= 0;\n var isScrollAtBottom = scrollTop >= maxScrollHeight;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n // ================================ Scroll ================================\n function onScrollBar(newScrollTop) {\n var newTop = newScrollTop;\n syncScrollTop(newTop);\n }\n // When data size reduce. It may trigger native scroll event back to fit scroll position\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n if (newScrollTop !== scrollTop) {\n syncScrollTop(newScrollTop);\n }\n // Trigger origin onScroll\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n }\n // Since this added in global,should use ref to keep update\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];\n // Mobile touch move\n useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n componentRef.current.addEventListener('wheel', onRawWheel);\n componentRef.current.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n if (componentRef.current) {\n componentRef.current.removeEventListener('wheel', onRawWheel);\n componentRef.current.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n }\n };\n }, [useVirtual]);\n // ================================= Ref ==================================\n var scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, collectHeight, syncScrollTop, function () {\n var _scrollBarRef$current;\n (_scrollBarRef$current = scrollBarRef.current) === null || _scrollBarRef$current === void 0 ? void 0 : _scrollBarRef$current.delayHidden();\n });\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: scrollTo\n };\n });\n // ================================ Effect ================================\n /** We need told outside that some list not rendered */\n useLayoutEffect(function () {\n if (onVisibleChange) {\n var renderList = mergedData.slice(start, end + 1);\n onVisibleChange(renderList, mergedData);\n }\n }, [start, end, mergedData]);\n // ================================ Render ================================\n var listChildren = useChildren(mergedData, start, end, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, restProps), /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offset: offset,\n onInnerResize: collectHeight,\n ref: fillerInnerRef,\n innerProps: innerProps\n }, listChildren)), useVirtual && /*#__PURE__*/React.createElement(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 setScrollMoving(true);\n },\n onStopMove: function onStopMove() {\n setScrollMoving(false);\n }\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport raf from \"rc-util/es/raf\";\nimport CacheMap from '../utils/CacheMap';\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var collectRafRef = useRef();\n function cancelRaf() {\n raf.cancel(collectRafRef.current);\n }\n function collectHeight() {\n cancelRaf();\n collectRafRef.current = raf(function () {\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n });\n // Always trigger update mark to tell parent that should re-calculate heights when resized\n setUpdatedMark(function (c) {\n return c + 1;\n });\n });\n }\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n }\n // Instance changed\n if (!origin !== !instance) {\n if (instance) {\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 useEffect(function () {\n return cancelRaf;\n }, []);\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport isFF from '../utils/isFirefox';\nimport useOriginScroll from './useOriginScroll';\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null);\n // Firefox patch\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false);\n // Scroll status sync\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n function onWheel(event) {\n if (!inVirtual) return;\n raf.cancel(nextFrameRef.current);\n var deltaY = event.deltaY;\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY;\n // Do nothing when scroll at the edge, Skip check when is in scroll\n if (originScroll(deltaY)) return;\n // Proxy of scroll events\n if (!isFF) {\n event.preventDefault();\n }\n nextFrameRef.current = 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 = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n }\n // A patch for firefox\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n return [onWheel, onFireFoxScroll];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\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 }\n // Normal scroll logic\n raf.cancel(scrollRef.current);\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\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 var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset;\n // We will retry 3 times in case dynamic height shaking\n var syncScroll = function syncScroll(times, targetAlign) {\n if (times < 0 || !containerRef.current) return;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign;\n // Go to next frame if height not exist\n if (height) {\n var mergedAlign = targetAlign || align;\n // Get top & bottom\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length, index);\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n if (i === index && cacheHeight === undefined) {\n needCollectHeight = true;\n }\n }\n // Scroll to\n var targetTop = null;\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n if (targetTop !== null && targetTop !== containerRef.current.scrollTop) {\n syncScrollTop(targetTop);\n }\n }\n // We will retry since element may not sync height as it described\n scrollRef.current = raf(function () {\n if (needCollectHeight) {\n collectHeight();\n }\n syncScroll(times - 1, newTargetAlign);\n }, 2); // Delay 2 to wait for List collect heights\n };\n\n syncScroll(3);\n }\n };\n}","import * as React from 'react';\nimport { Item } from '../Item';\nexport default function useChildren(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, {\n // style: status === 'MEASURE_START' ? { visibility: 'hidden' } : {},\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","import List from './List';\nexport default List;","import * as React from 'react';\nvar SelectContext = /*#__PURE__*/React.createContext(null);\nexport default SelectContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"disabled\", \"title\", \"children\", \"style\", \"className\"];\nimport classNames from 'classnames';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport List from 'rc-virtual-list';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport useBaseProps from \"./hooks/useBaseProps\";\nimport SelectContext from \"./SelectContext\";\nimport TransBtn from \"./TransBtn\";\nimport { isPlatformMac } from \"./utils/platformUtil\"; // export interface OptionListProps {\n\nfunction isTitleType(content) {\n return typeof content === 'string' || typeof content === 'number';\n}\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\n\n\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n id = _useBaseProps.id,\n open = _useBaseProps.open,\n multiple = _useBaseProps.multiple,\n mode = _useBaseProps.mode,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n onPopupScroll = _useBaseProps.onPopupScroll;\n\n var _React$useContext = React.useContext(SelectContext),\n flattenOptions = _React$useContext.flattenOptions,\n onActiveValue = _React$useContext.onActiveValue,\n defaultActiveFirstOption = _React$useContext.defaultActiveFirstOption,\n onSelect = _React$useContext.onSelect,\n menuItemSelectedIcon = _React$useContext.menuItemSelectedIcon,\n rawValues = _React$useContext.rawValues,\n fieldNames = _React$useContext.fieldNames,\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight;\n\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n }); // =========================== List ===========================\n\n var listRef = React.useRef(null);\n\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n\n var scrollIntoView = function scrollIntoView(args) {\n if (listRef.current) {\n listRef.current.scrollTo(typeof args === 'number' ? {\n index: args\n } : args);\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.length;\n\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _memoFlattenOptions$c = memoFlattenOptions[current],\n group = _memoFlattenOptions$c.group,\n data = _memoFlattenOptions$c.data;\n\n if (!group && !data.disabled) {\n return current;\n }\n }\n\n return -1;\n };\n\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n\n var setActive = function setActive(index) {\n var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setActiveIndex(index);\n var info = {\n source: fromKeyboard ? 'keyboard' : 'mouse'\n }; // Trigger active event\n\n var flattenItem = memoFlattenOptions[index];\n\n if (!flattenItem) {\n onActiveValue(null, -1, info);\n return;\n }\n\n onActiveValue(flattenItem.value, index, info);\n }; // Auto active first item when list length or searchValue changed\n\n\n useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]); // https://github.com/ant-design/ant-design/issues/34975\n\n var isSelected = React.useCallback(function (value) {\n return rawValues.has(value) && mode !== 'combobox';\n }, [mode, _toConsumableArray(rawValues).toString(), rawValues.size]); // Auto scroll to item position in single mode\n\n useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && rawValues.size === 1) {\n var value = Array.from(rawValues)[0];\n var index = memoFlattenOptions.findIndex(function (_ref) {\n var data = _ref.data;\n return data.value === value;\n });\n\n if (index !== -1) {\n setActive(index);\n scrollIntoView(index);\n }\n }\n }); // Force trigger scrollbar visible when open\n\n if (open) {\n var _listRef$current;\n\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(undefined);\n }\n\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open, searchValue]); // ========================== Values ==========================\n\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !rawValues.has(value)\n });\n } // Single mode should always close by select\n\n\n if (!multiple) {\n toggleOpen(false);\n }\n }; // ========================= Keyboard =========================\n\n\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which,\n ctrlKey = event.ctrlKey;\n\n switch (which) {\n // >>> Arrow keys & ctrl + n/p on Mac\n case KeyCode.N:\n case KeyCode.P:\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 } else if (isPlatformMac() && ctrlKey) {\n if (which === KeyCode.N) {\n offset = 1;\n } else if (which === KeyCode.P) {\n offset = -1;\n }\n }\n\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(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[activeIndex];\n\n if (item && !item.data.disabled) {\n onSelectValue(item.value);\n } else {\n onSelectValue(undefined);\n }\n\n if (open) {\n event.preventDefault();\n }\n\n break;\n }\n // >>> Close\n\n case KeyCode.ESC:\n {\n toggleOpen(false);\n\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n }); // ========================== Render ==========================\n\n if (memoFlattenOptions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n\n var omitFieldNameList = Object.keys(fieldNames).map(function (key) {\n return fieldNames[key];\n });\n\n var getLabel = function getLabel(item) {\n return item.label;\n };\n\n function getItemAriaProps(item, index) {\n var group = item.group;\n return {\n role: group ? 'presentation' : 'option',\n id: \"\".concat(id, \"_list_\").concat(index)\n };\n }\n\n var renderItem = function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) return null;\n var itemData = item.data || {};\n var value = itemData.value;\n var group = item.group;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = getLabel(item);\n return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-label\": typeof mergedLabel === 'string' && !group ? mergedLabel : null\n }, attrs, {\n key: index\n }, getItemAriaProps(item, index), {\n \"aria-selected\": isSelected(value)\n }), value) : null;\n };\n\n var a11yProps = {\n role: 'listbox',\n id: \"\".concat(id, \"_list\")\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, virtual && /*#__PURE__*/React.createElement(\"div\", _extends({}, a11yProps, {\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }), renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: listHeight,\n itemHeight: listItemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onPopupScroll,\n virtual: virtual,\n innerProps: virtual ? null : a11yProps\n }, function (item, itemIndex) {\n var _classNames;\n\n var group = item.group,\n groupOption = item.groupOption,\n data = item.data,\n label = item.label,\n value = item.value;\n var key = data.key; // Group\n\n if (group) {\n var _data$title;\n\n var groupTitle = (_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : isTitleType(label) ? label.toString() : undefined;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\")),\n title: groupTitle\n }, label !== undefined ? label : key);\n }\n\n var disabled = data.disabled,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, _excluded);\n\n var passedProps = omit(otherProps, omitFieldNameList); // Option\n\n var selected = isSelected(value);\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, 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 = getLabel(item);\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected; // https://github.com/ant-design/ant-design/issues/34145\n\n var content = typeof mergedLabel === 'number' ? mergedLabel : mergedLabel || value; // https://github.com/ant-design/ant-design/issues/26717\n\n var optionTitle = isTitleType(content) ? content.toString() : undefined;\n\n if (title !== undefined) {\n optionTitle = title;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, pickAttrs(passedProps), !virtual ? getItemAriaProps(item, itemIndex) : {}, {\n \"aria-selected\": selected,\n className: optionClassName,\n title: optionTitle,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || disabled) {\n return;\n }\n\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!disabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\n\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/* istanbul ignore file */\nexport function isPlatformMac() {\n return /(mac\\sos|macintosh)/i.test(navigator.appVersion);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { isMultiple } from \"../BaseSelect\";\nimport { toArray } from \"./commonUtil\";\nimport { convertChildrenToData } from \"./legacyUtil\";\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 = isMultiple(mode);\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` & `tags` should option be `string` type\n\n if (mode === 'tags' || mode === 'combobox') {\n var hasNumberValue = mergedOptions.some(function (item) {\n if (item.options) {\n return item.options.some(function (opt) {\n return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n });\n }\n\n return typeof ('value' in item ? item.value : item.key) === 'number';\n });\n warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n } // `combobox` should not use `optionLabelProp`\n\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?: ReactNode }` 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 toNodeArray(children).some(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return false;\n }\n\n var _ref = node,\n type = _ref.type;\n\n if (type.isSelectOption) {\n return false;\n }\n\n if (type.isSelectOptGroup) {\n var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n if (! /*#__PURE__*/React.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} // value in Select option should not be null\n// note: OptGroup has options too\n\n\nexport function warningNullOptions(options, fieldNames) {\n if (options) {\n var recursiveOptions = function recursiveOptions(optionsList) {\n var inGroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n for (var i = 0; i < optionsList.length; i++) {\n var option = optionsList[i];\n\n if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n warning(false, '`value` in Select options should not be `null`.');\n return true;\n }\n\n if (!inGroup && Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options], true)) {\n break;\n }\n }\n };\n\n recursiveOptions(options);\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"listHeight\", \"listItemHeight\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\"];\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 useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport { hasValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\n\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\n\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n mode = props.mode,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n backfill = props.backfill,\n fieldNames = props.fieldNames,\n inputValue = props.inputValue,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n filterOption = props.filterOption,\n filterSort = props.filterSort,\n optionFilterProp = props.optionFilterProp,\n optionLabelProp = props.optionLabelProp,\n options = props.options,\n children = props.children,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n menuItemSelectedIcon = props.menuItemSelectedIcon,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n value = props.value,\n defaultValue = props.defaultValue,\n labelInValue = props.labelInValue,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var mergedId = useId(id);\n var multiple = isMultiple(mode);\n var childrenAsData = !!(!options && children);\n var mergedFilterOption = React.useMemo(function () {\n if (filterOption === undefined && mode === 'combobox') {\n return false;\n }\n\n return filterOption;\n }, [filterOption, mode]); // ========================= FieldNames =========================\n\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames, childrenAsData);\n },\n /* eslint-disable react-hooks/exhaustive-deps */\n [// We stringify fieldNames to avoid unnecessary re-renders.\n JSON.stringify(fieldNames), childrenAsData]\n /* eslint-enable react-hooks/exhaustive-deps */\n ); // =========================== Search ===========================\n\n var _useMergedState = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSearchValue = _useMergedState2[0],\n setSearchValue = _useMergedState2[1]; // =========================== Option ===========================\n\n\n var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n var valueOptions = parsedOptions.valueOptions,\n labelOptions = parsedOptions.labelOptions,\n mergedOptions = parsedOptions.options; // ========================= Wrap Value =========================\n\n var convert2LabelValues = React.useCallback(function (draftValues) {\n // Convert to array\n var valueList = toArray(draftValues); // Convert to labelInValue type\n\n return valueList.map(function (val) {\n var rawValue;\n var rawLabel;\n var rawKey;\n var rawDisabled;\n var rawTitle; // Fill label & value\n\n if (isRawValue(val)) {\n rawValue = val;\n } else {\n var _val$value;\n\n rawKey = val.key;\n rawLabel = val.label;\n rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n }\n\n var option = valueOptions.get(rawValue);\n\n if (option) {\n var _option$key;\n\n // Fill missing props\n if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n rawTitle = option === null || option === void 0 ? void 0 : option.title; // Warning if label not same as provided\n\n if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n\n if (optionLabel !== undefined && optionLabel !== rawLabel) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n }\n }\n\n return {\n label: rawLabel,\n value: rawValue,\n key: rawKey,\n disabled: rawDisabled,\n title: rawTitle\n };\n });\n }, [mergedFieldNames, optionLabelProp, valueOptions]); // =========================== Values ===========================\n\n var _useMergedState3 = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n internalValue = _useMergedState4[0],\n setInternalValue = _useMergedState4[1]; // Merged value with LabelValueType\n\n\n var rawLabeledValues = React.useMemo(function () {\n var _values$;\n\n var values = convert2LabelValues(internalValue); // combobox no need save value when it's no value\n\n if (mode === 'combobox' && !((_values$ = values[0]) !== null && _values$ !== void 0 && _values$.value)) {\n return [];\n }\n\n return values;\n }, [internalValue, convert2LabelValues, mode]); // Fill label with cache to avoid option remove\n\n var _useCache = useCache(rawLabeledValues, valueOptions),\n _useCache2 = _slicedToArray(_useCache, 2),\n mergedValues = _useCache2[0],\n getMixedOption = _useCache2[1];\n\n var displayValues = React.useMemo(function () {\n // `null` need show as placeholder instead\n // https://github.com/ant-design/ant-design/issues/25057\n if (!mode && mergedValues.length === 1) {\n var firstValue = mergedValues[0];\n\n if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n return [];\n }\n }\n\n return mergedValues.map(function (item) {\n var _item$label;\n\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mode, mergedValues]);\n /** Convert `displayValues` to raw value type set */\n\n var rawValues = React.useMemo(function () {\n return new Set(mergedValues.map(function (val) {\n return val.value;\n }));\n }, [mergedValues]);\n React.useEffect(function () {\n if (mode === 'combobox') {\n var _mergedValues$;\n\n var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n setSearchValue(hasValue(strValue) ? String(strValue) : '');\n }\n }, [mergedValues]); // ======================= Display Option =======================\n // Create a placeholder item if not exist in `options`\n\n var createTagOption = useRefFunc(function (val, label) {\n var _ref;\n\n var mergedLabel = label !== null && label !== void 0 ? label : val;\n return _ref = {}, _defineProperty(_ref, mergedFieldNames.value, val), _defineProperty(_ref, mergedFieldNames.label, mergedLabel), _ref;\n }); // Fill tag as option if mode is `tags`\n\n var filledTagOptions = React.useMemo(function () {\n if (mode !== 'tags') {\n return mergedOptions;\n } // >>> Tag mode\n\n\n var cloneOptions = _toConsumableArray(mergedOptions); // Check if value exist in options (include new patch item)\n\n\n var existOptions = function existOptions(val) {\n return valueOptions.has(val);\n }; // Fill current value as option\n\n\n _toConsumableArray(mergedValues).sort(function (a, b) {\n return a.value < b.value ? -1 : 1;\n }).forEach(function (item) {\n var val = item.value;\n\n if (!existOptions(val)) {\n cloneOptions.push(createTagOption(val, item.label));\n }\n });\n\n return cloneOptions;\n }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp); // Fill options with search value if needed\n\n var filledSearchOptions = React.useMemo(function () {\n if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n return item[optionFilterProp || 'value'] === mergedSearchValue;\n })) {\n return filteredOptions;\n } // Fill search value as option\n\n\n return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue]);\n var orderedFilteredOptions = React.useMemo(function () {\n if (!filterSort) {\n return filledSearchOptions;\n }\n\n return _toConsumableArray(filledSearchOptions).sort(function (a, b) {\n return filterSort(a, b);\n });\n }, [filledSearchOptions, filterSort]);\n var displayOptions = React.useMemo(function () {\n return flattenOptions(orderedFilteredOptions, {\n fieldNames: mergedFieldNames,\n childrenAsData: childrenAsData\n });\n }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]); // =========================== Change ===========================\n\n var triggerChange = function triggerChange(values) {\n var labeledValues = convert2LabelValues(values);\n setInternalValue(labeledValues);\n\n if (onChange && ( // Trigger event only when value changed\n labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n var _mergedValues$index;\n\n return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n }))) {\n var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n return v.value;\n });\n var returnOptions = labeledValues.map(function (v) {\n return injectPropsWithOption(getMixedOption(v.value));\n });\n onChange( // Value\n multiple ? returnValues : returnValues[0], // Option\n multiple ? returnOptions : returnOptions[0]);\n }\n }; // ======================= Accessibility ========================\n\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValue = _React$useState2[0],\n setActiveValue = _React$useState2[1];\n\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n accessibilityIndex = _React$useState4[0],\n setAccessibilityIndex = _React$useState4[1];\n\n var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n var onActiveValue = React.useCallback(function (active, index) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$source = _ref2.source,\n source = _ref2$source === void 0 ? 'keyboard' : _ref2$source;\n\n setAccessibilityIndex(index);\n\n if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n setActiveValue(String(active));\n }\n }, [backfill, mode]); // ========================= OptionList =========================\n\n var triggerSelect = function triggerSelect(val, selected, type) {\n var getSelectEnt = function getSelectEnt() {\n var _option$key2;\n\n var option = getMixedOption(val);\n return [labelInValue ? {\n label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n value: val,\n key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n } : val, injectPropsWithOption(option)];\n };\n\n if (selected && onSelect) {\n var _getSelectEnt = getSelectEnt(),\n _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n wrappedValue = _getSelectEnt2[0],\n _option = _getSelectEnt2[1];\n\n onSelect(wrappedValue, _option);\n } else if (!selected && onDeselect && type !== 'clear') {\n var _getSelectEnt3 = getSelectEnt(),\n _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n _wrappedValue = _getSelectEnt4[0],\n _option2 = _getSelectEnt4[1];\n\n onDeselect(_wrappedValue, _option2);\n }\n }; // Used for OptionList selection\n\n\n var onInternalSelect = useRefFunc(function (val, info) {\n var cloneValues; // Single mode always trigger select only with option list\n\n var mergedSelect = multiple ? info.selected : true;\n\n if (mergedSelect) {\n cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n } else {\n cloneValues = mergedValues.filter(function (v) {\n return v.value !== val;\n });\n }\n\n triggerChange(cloneValues);\n triggerSelect(val, mergedSelect); // Clean search value if single or configured\n\n if (mode === 'combobox') {\n // setSearchValue(String(val));\n setActiveValue('');\n } else if (!isMultiple || autoClearSearchValue) {\n setSearchValue('');\n setActiveValue('');\n }\n }); // ======================= Display Change =======================\n // BaseSelect display values change\n\n var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n triggerChange(nextValues);\n var type = info.type,\n values = info.values;\n\n if (type === 'remove' || type === 'clear') {\n values.forEach(function (item) {\n triggerSelect(item.value, false, type);\n });\n }\n }; // =========================== Search ===========================\n\n\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n setActiveValue(null); // [Submit] Tag mode should flush input\n\n if (info.source === 'submit') {\n var formatted = (searchText || '').trim(); // prevent empty tags from appearing when you click the Enter button\n\n if (formatted) {\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n triggerChange(newRawValues);\n triggerSelect(formatted, true);\n setSearchValue('');\n }\n\n return;\n }\n\n if (info.source !== 'blur') {\n if (mode === 'combobox') {\n triggerChange(searchText);\n }\n\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n }\n };\n\n var onInternalSearchSplit = function onInternalSearchSplit(words) {\n var patchValues = words;\n\n if (mode !== 'tags') {\n patchValues = words.map(function (word) {\n var opt = labelOptions.get(word);\n return opt === null || opt === void 0 ? void 0 : opt.value;\n }).filter(function (val) {\n return val !== undefined;\n });\n }\n\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true);\n });\n }; // ========================== Context ===========================\n\n\n var selectContext = React.useMemo(function () {\n var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n flattenOptions: displayOptions,\n onActiveValue: onActiveValue,\n defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n onSelect: onInternalSelect,\n menuItemSelectedIcon: menuItemSelectedIcon,\n rawValues: rawValues,\n fieldNames: mergedFieldNames,\n virtual: realVirtual,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n childrenAsData: childrenAsData\n });\n }, [parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, childrenAsData]); // ========================== Warning ===========================\n\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n } // ==============================================================\n // == Render ==\n // ==============================================================\n\n\n return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n value: selectContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n ref: ref,\n omitDomProps: OMIT_DOM_PROPS,\n mode: mode // >>> Values\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n autoClearSearchValue: autoClearSearchValue,\n onSearchSplit: onInternalSearchSplit,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth // >>> OptionList\n ,\n OptionList: OptionList,\n emptyOptions: !displayOptions.length // >>> Accessibility\n ,\n activeValue: activeValue,\n activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n })));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Select.displayName = 'Select';\n}\n\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","import * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n/**\n * Parse `children` to `options` if `options` is not provided.\n * Then flatten the `options`.\n */\n\nexport default function useOptions(options, children, fieldNames, optionFilterProp, optionLabelProp) {\n return React.useMemo(function () {\n var mergedOptions = options;\n var childrenAsData = !options;\n\n if (childrenAsData) {\n mergedOptions = convertChildrenToData(children);\n }\n\n var valueOptions = new Map();\n var labelOptions = new Map();\n\n var setLabelOptions = function setLabelOptions(labelOptionsMap, option, key) {\n if (key && typeof key === 'string') {\n labelOptionsMap.set(option[key], option);\n }\n };\n\n function dig(optionList) {\n var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n // for loop to speed up collection speed\n for (var i = 0; i < optionList.length; i += 1) {\n var option = optionList[i];\n\n if (!option[fieldNames.options] || isChildren) {\n valueOptions.set(option[fieldNames.value], option);\n setLabelOptions(labelOptions, option, fieldNames.label); // https://github.com/ant-design/ant-design/issues/35304\n\n setLabelOptions(labelOptions, option, optionFilterProp);\n setLabelOptions(labelOptions, option, optionLabelProp);\n } else {\n dig(option[fieldNames.options], true);\n }\n }\n }\n\n dig(mergedOptions);\n return {\n options: mergedOptions,\n valueOptions: valueOptions,\n labelOptions: labelOptions\n };\n }, [options, children, fieldNames, optionFilterProp, optionLabelProp]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (function (labeledValues, valueOptions) {\n var cacheRef = React.useRef({\n values: new Map(),\n options: new Map()\n });\n var filledLabeledValues = React.useMemo(function () {\n var _cacheRef$current = cacheRef.current,\n prevValueCache = _cacheRef$current.values,\n prevOptionCache = _cacheRef$current.options; // Fill label by cache\n\n var patchedValues = labeledValues.map(function (item) {\n if (item.label === undefined) {\n var _prevValueCache$get;\n\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_prevValueCache$get = prevValueCache.get(item.value)) === null || _prevValueCache$get === void 0 ? void 0 : _prevValueCache$get.label\n });\n }\n\n return item;\n }); // Refresh cache\n\n var valueCache = new Map();\n var optionCache = new Map();\n patchedValues.forEach(function (item) {\n valueCache.set(item.value, item);\n optionCache.set(item.value, valueOptions.get(item.value) || prevOptionCache.get(item.value));\n });\n cacheRef.current.values = valueCache;\n cacheRef.current.options = optionCache;\n return patchedValues;\n }, [labeledValues, valueOptions]);\n var getOption = React.useCallback(function (val) {\n return valueOptions.get(val) || cacheRef.current.options.get(val);\n }, [valueOptions]);\n return [filledLabeledValues, getOption];\n});","import Select from \"./Select\";\nimport Option from \"./Option\";\nimport OptGroup from \"./OptGroup\";\nimport BaseSelect from \"./BaseSelect\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nexport { Option, OptGroup, BaseSelect, useBaseProps };\nexport default Select;","import classNames from 'classnames';\nconst InputStatuses = ['warning', 'error', ''];\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n return classNames({\n [`${prefixCls}-status-success`]: status === 'success',\n [`${prefixCls}-status-warning`]: status === 'warning',\n [`${prefixCls}-status-error`]: status === 'error',\n [`${prefixCls}-status-validating`]: status === 'validating',\n [`${prefixCls}-has-feedback`]: hasFeedback\n });\n}\nexport const getMergedStatus = (contextStatus, customStatus) => customStatus || contextStatus;","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckOutlinedSvg\n }));\n};\nCheckOutlined.displayName = 'CheckOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckOutlined);","// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DownOutlined = function DownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DownOutlinedSvg\n }));\n};\nDownOutlined.displayName = 'DownOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownOutlined);","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\nSearchOutlined.displayName = 'SearchOutlined';\nexport default /*#__PURE__*/React.forwardRef(SearchOutlined);","import CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nexport default function getIcons(_ref) {\n let {\n suffixIcon,\n clearIcon,\n menuItemSelectedIcon,\n removeIcon,\n loading,\n multiple,\n hasFeedback,\n prefixCls,\n showArrow,\n feedbackIcon\n } = _ref;\n // Clear Icon\n const mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n // Validation Feedback Icon\n const getSuffixIconNode = arrowIcon => /*#__PURE__*/React.createElement(React.Fragment, null, showArrow !== false && arrowIcon, hasFeedback && feedbackIcon);\n // Arrow item icon\n let mergedSuffixIcon = null;\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n } else if (loading) {\n mergedSuffixIcon = getSuffixIconNode( /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n } else {\n const iconCls = `${prefixCls}-suffix`;\n mergedSuffixIcon = _ref2 => {\n let {\n open,\n showSearch\n } = _ref2;\n if (open && showSearch) {\n return getSuffixIconNode( /*#__PURE__*/React.createElement(SearchOutlined, {\n className: iconCls\n }));\n }\n return getSuffixIconNode( /*#__PURE__*/React.createElement(DownOutlined, {\n className: iconCls\n }));\n };\n }\n // Checked item icon\n let mergedItemIcon = null;\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n let mergedRemoveIcon = null;\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","import { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport { resetComponent, textEllipsis } from '../../style';\nconst genItemStyle = token => {\n const {\n controlPaddingHorizontal\n } = token;\n return {\n position: 'relative',\n display: 'block',\n minHeight: token.controlHeight,\n padding: `${(token.controlHeight - token.fontSize * token.lineHeight) / 2}px ${controlPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n boxSizing: 'border-box'\n };\n};\nconst genSingleStyle = token => {\n const {\n antCls,\n componentCls\n } = token;\n const selectItemCls = `${componentCls}-item`;\n return [{\n [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n zIndex: token.zIndexPopup,\n boxSizing: 'border-box',\n padding: token.paddingXXS,\n overflow: 'hidden',\n fontSize: token.fontSize,\n // Fix select render lag of long text in chrome\n // https://github.com/ant-design/ant-design/issues/11456\n // https://github.com/ant-design/ant-design/issues/11843\n fontVariant: 'initial',\n backgroundColor: token.colorBgElevated,\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary,\n [`\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomLeft\n `]: {\n animationName: slideUpIn\n },\n [`\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topLeft\n `]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomLeft`]: {\n animationName: slideUpOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topLeft`]: {\n animationName: slideDownOut\n },\n '&-hidden': {\n display: 'none'\n },\n '&-empty': {\n color: token.colorTextDisabled\n },\n // ========================= Options =========================\n [`${selectItemCls}-empty`]: Object.assign(Object.assign({}, genItemStyle(token)), {\n color: token.colorTextDisabled\n }),\n [`${selectItemCls}`]: Object.assign(Object.assign({}, genItemStyle(token)), {\n cursor: 'pointer',\n transition: `background ${token.motionDurationSlow} ease`,\n borderRadius: token.borderRadiusSM,\n // =========== Group ============\n '&-group': {\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n cursor: 'default'\n },\n // =========== Option ===========\n '&-option': {\n display: 'flex',\n '&-content': Object.assign({\n flex: 'auto'\n }, textEllipsis),\n '&-state': {\n flex: 'none'\n },\n [`&-active:not(${selectItemCls}-option-disabled)`]: {\n backgroundColor: token.controlItemBgHover\n },\n [`&-selected:not(${selectItemCls}-option-disabled)`]: {\n color: token.colorText,\n fontWeight: token.fontWeightStrong,\n backgroundColor: token.controlItemBgActive,\n [`${selectItemCls}-option-state`]: {\n color: token.colorPrimary\n }\n },\n '&-disabled': {\n [`&${selectItemCls}-option-selected`]: {\n backgroundColor: token.colorBgContainerDisabled\n },\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n '&-grouped': {\n paddingInlineStart: token.controlPaddingHorizontal * 2\n }\n }\n }),\n // =========================== RTL ===========================\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Follow code may reuse in other components\n initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\nexport default genSingleStyle;","import { mergeToken } from '../../theme/internal';\nimport { resetIcon } from '../../style';\nconst FIXED_ITEM_MARGIN = 2;\nfunction getSelectItemStyle(_ref) {\n let {\n controlHeightSM,\n controlHeight,\n lineWidth: borderWidth\n } = _ref;\n const selectItemDist = (controlHeight - controlHeightSM) / 2 - borderWidth;\n const selectItemMargin = Math.ceil(selectItemDist / 2);\n return [selectItemDist, selectItemMargin];\n}\nfunction genSizeStyle(token, suffix) {\n const {\n componentCls,\n iconCls\n } = token;\n const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n const selectItemHeight = token.controlHeightSM;\n const [selectItemDist] = getSelectItemStyle(token);\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n return {\n [`${componentCls}-multiple${suffixCls}`]: {\n fontSize: token.fontSize,\n /**\n * Do not merge `height` & `line-height` under style with `selection` & `search`, since chrome\n * may update to redesign with its align logic.\n */\n // =========================== Overflow ===========================\n [selectOverflowPrefixCls]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n flexWrap: 'wrap',\n maxWidth: '100%',\n '&-item': {\n flex: 'none',\n alignSelf: 'center',\n maxWidth: '100%',\n display: 'inline-flex'\n }\n },\n // ========================= Selector =========================\n [`${componentCls}-selector`]: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n // Multiple is little different that horizontal is follow the vertical\n padding: `${selectItemDist - FIXED_ITEM_MARGIN}px ${FIXED_ITEM_MARGIN * 2}px`,\n borderRadius: token.borderRadius,\n [`${componentCls}-show-search&`]: {\n cursor: 'text'\n },\n [`${componentCls}-disabled&`]: {\n background: token.colorBgContainerDisabled,\n cursor: 'not-allowed'\n },\n '&:after': {\n display: 'inline-block',\n width: 0,\n margin: `${FIXED_ITEM_MARGIN}px 0`,\n lineHeight: `${selectItemHeight}px`,\n content: '\"\\\\a0\"'\n }\n },\n [`\n &${componentCls}-show-arrow ${componentCls}-selector,\n &${componentCls}-allow-clear ${componentCls}-selector\n `]: {\n paddingInlineEnd: token.fontSizeIcon + token.controlPaddingHorizontal\n },\n // ======================== Selections ========================\n [`${componentCls}-selection-item`]: {\n position: 'relative',\n display: 'flex',\n flex: 'none',\n boxSizing: 'border-box',\n maxWidth: '100%',\n height: selectItemHeight,\n marginTop: FIXED_ITEM_MARGIN,\n marginBottom: FIXED_ITEM_MARGIN,\n lineHeight: `${selectItemHeight - token.lineWidth * 2}px`,\n background: token.colorFillSecondary,\n border: `${token.lineWidth}px solid ${token.colorSplit}`,\n borderRadius: token.borderRadiusSM,\n cursor: 'default',\n transition: `font-size ${token.motionDurationSlow}, line-height ${token.motionDurationSlow}, height ${token.motionDurationSlow}`,\n userSelect: 'none',\n marginInlineEnd: FIXED_ITEM_MARGIN * 2,\n paddingInlineStart: token.paddingXS,\n paddingInlineEnd: token.paddingXS / 2,\n [`${componentCls}-disabled&`]: {\n color: token.colorTextDisabled,\n borderColor: token.colorBorder,\n cursor: 'not-allowed'\n },\n // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n '&-content': {\n display: 'inline-block',\n marginInlineEnd: token.paddingXS / 2,\n overflow: 'hidden',\n whiteSpace: 'pre',\n textOverflow: 'ellipsis'\n },\n '&-remove': Object.assign(Object.assign({}, resetIcon()), {\n display: 'inline-block',\n color: token.colorIcon,\n fontWeight: 'bold',\n fontSize: 10,\n lineHeight: 'inherit',\n cursor: 'pointer',\n [`> ${iconCls}`]: {\n verticalAlign: '-0.2em'\n },\n '&:hover': {\n color: token.colorIconHover\n }\n })\n },\n // ========================== Input ==========================\n [`${selectOverflowPrefixCls}-item + ${selectOverflowPrefixCls}-item`]: {\n [`${componentCls}-selection-search`]: {\n marginInlineStart: 0\n }\n },\n [`${componentCls}-selection-search`]: {\n display: 'inline-flex',\n position: 'relative',\n maxWidth: '100%',\n marginInlineStart: token.inputPaddingHorizontalBase - selectItemDist,\n [`\n &-input,\n &-mirror\n `]: {\n height: selectItemHeight,\n fontFamily: token.fontFamily,\n lineHeight: `${selectItemHeight}px`,\n transition: `all ${token.motionDurationSlow}`\n },\n '&-input': {\n width: '100%',\n minWidth: 4.1 // fix search cursor missing\n },\n\n '&-mirror': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n insetInlineEnd: 'auto',\n zIndex: 999,\n whiteSpace: 'pre',\n visibility: 'hidden'\n }\n },\n // ======================= Placeholder =======================\n [`${componentCls}-selection-placeholder `]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: token.inputPaddingHorizontalBase,\n insetInlineEnd: token.inputPaddingHorizontalBase,\n transform: 'translateY(-50%)',\n transition: `all ${token.motionDurationSlow}`\n }\n }\n };\n}\nexport default function genMultipleStyle(token) {\n const {\n componentCls\n } = token;\n const smallToken = mergeToken(token, {\n controlHeight: token.controlHeightSM,\n controlHeightSM: token.controlHeightXS,\n borderRadius: token.borderRadiusSM,\n borderRadiusSM: token.borderRadiusXS\n });\n const [, smSelectItemMargin] = getSelectItemStyle(token);\n return [genSizeStyle(token),\n // ======================== Small ========================\n // Shared\n genSizeStyle(smallToken, 'sm'),\n // Padding\n {\n [`${componentCls}-multiple${componentCls}-sm`]: {\n [`${componentCls}-selection-placeholder`]: {\n insetInlineStart: token.controlPaddingHorizontalSM - token.lineWidth,\n insetInlineEnd: 'auto'\n },\n // https://github.com/ant-design/ant-design/issues/29559\n [`${componentCls}-selection-search`]: {\n marginInlineStart: smSelectItemMargin\n }\n }\n },\n // ======================== Large ========================\n // Shared\n genSizeStyle(mergeToken(token, {\n fontSize: token.fontSizeLG,\n controlHeight: token.controlHeightLG,\n controlHeightSM: token.controlHeight,\n borderRadius: token.borderRadiusLG,\n borderRadiusSM: token.borderRadius\n }), 'lg')];\n}","import { resetComponent } from '../../style';\nimport { mergeToken } from '../../theme/internal';\nfunction genSizeStyle(token, suffix) {\n const {\n componentCls,\n inputPaddingHorizontalBase,\n borderRadius\n } = token;\n const selectHeightWithoutBorder = token.controlHeight - token.lineWidth * 2;\n const selectionItemPadding = Math.ceil(token.fontSize * 1.25);\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n return {\n [`${componentCls}-single${suffixCls}`]: {\n fontSize: token.fontSize,\n // ========================= Selector =========================\n [`${componentCls}-selector`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n borderRadius,\n [`${componentCls}-selection-search`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: inputPaddingHorizontalBase,\n insetInlineEnd: inputPaddingHorizontalBase,\n bottom: 0,\n '&-input': {\n width: '100%'\n }\n },\n [`\n ${componentCls}-selection-item,\n ${componentCls}-selection-placeholder\n `]: {\n padding: 0,\n lineHeight: `${selectHeightWithoutBorder}px`,\n transition: `all ${token.motionDurationSlow}`,\n // Firefox inline-block position calculation is not same as Chrome & Safari. Patch this:\n '@supports (-moz-appearance: meterbar)': {\n lineHeight: `${selectHeightWithoutBorder}px`\n }\n },\n [`${componentCls}-selection-item`]: {\n position: 'relative',\n userSelect: 'none'\n },\n [`${componentCls}-selection-placeholder`]: {\n transition: 'none',\n pointerEvents: 'none'\n },\n // For common baseline align\n [['&:after', /* For '' value baseline align */\n `${componentCls}-selection-item:after`, /* For undefined value baseline align */\n `${componentCls}-selection-placeholder:after`].join(',')]: {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n }\n }),\n [`\n &${componentCls}-show-arrow ${componentCls}-selection-item,\n &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n `]: {\n paddingInlineEnd: selectionItemPadding\n },\n // Opacity selection if open\n [`&${componentCls}-open ${componentCls}-selection-item`]: {\n color: token.colorTextPlaceholder\n },\n // ========================== Input ==========================\n // We only change the style of non-customize input which is only support by `combobox` mode.\n // Not customize\n [`&:not(${componentCls}-customize-input)`]: {\n [`${componentCls}-selector`]: {\n width: '100%',\n height: token.controlHeight,\n padding: `0 ${inputPaddingHorizontalBase}px`,\n [`${componentCls}-selection-search-input`]: {\n height: selectHeightWithoutBorder\n },\n '&:after': {\n lineHeight: `${selectHeightWithoutBorder}px`\n }\n }\n },\n [`&${componentCls}-customize-input`]: {\n [`${componentCls}-selector`]: {\n '&:after': {\n display: 'none'\n },\n [`${componentCls}-selection-search`]: {\n position: 'static',\n width: '100%'\n },\n [`${componentCls}-selection-placeholder`]: {\n position: 'absolute',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n padding: `0 ${inputPaddingHorizontalBase}px`,\n '&:after': {\n display: 'none'\n }\n }\n }\n }\n }\n };\n}\nexport default function genSingleStyle(token) {\n const {\n componentCls\n } = token;\n const inputPaddingHorizontalSM = token.controlPaddingHorizontalSM - token.lineWidth;\n return [genSizeStyle(token),\n // ======================== Small ========================\n // Shared\n genSizeStyle(mergeToken(token, {\n controlHeight: token.controlHeightSM,\n borderRadius: token.borderRadiusSM\n }), 'sm'),\n // padding\n {\n [`${componentCls}-single${componentCls}-sm`]: {\n [`&:not(${componentCls}-customize-input)`]: {\n [`${componentCls}-selection-search`]: {\n insetInlineStart: inputPaddingHorizontalSM,\n insetInlineEnd: inputPaddingHorizontalSM\n },\n [`${componentCls}-selector`]: {\n padding: `0 ${inputPaddingHorizontalSM}px`\n },\n // With arrow should provides `padding-right` to show the arrow\n [`&${componentCls}-show-arrow ${componentCls}-selection-search`]: {\n insetInlineEnd: inputPaddingHorizontalSM + token.fontSize * 1.5\n },\n [`\n &${componentCls}-show-arrow ${componentCls}-selection-item,\n &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n `]: {\n paddingInlineEnd: token.fontSize * 1.5\n }\n }\n }\n },\n // ======================== Large ========================\n // Shared\n genSizeStyle(mergeToken(token, {\n controlHeight: token.controlHeightLG,\n fontSize: token.fontSizeLG,\n borderRadius: token.borderRadiusLG\n }), 'lg')];\n}","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genDropdownStyle from './dropdown';\nimport genMultipleStyle from './multiple';\nimport genSingleStyle from './single';\nimport { resetComponent, resetIcon, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\n// ============================= Selector =============================\nconst genSelectorStyle = token => {\n const {\n componentCls\n } = token;\n return {\n position: 'relative',\n backgroundColor: token.colorBgContainer,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n input: {\n cursor: 'pointer'\n },\n [`${componentCls}-show-search&`]: {\n cursor: 'text',\n input: {\n cursor: 'auto',\n color: 'inherit'\n }\n },\n [`${componentCls}-disabled&`]: {\n color: token.colorTextDisabled,\n background: token.colorBgContainerDisabled,\n cursor: 'not-allowed',\n [`${componentCls}-multiple&`]: {\n background: token.colorBgContainerDisabled\n },\n input: {\n cursor: 'not-allowed'\n }\n }\n };\n};\n// ============================== Status ==============================\nconst genStatusStyle = function (rootSelectCls, token) {\n let overwriteDefaultBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const {\n componentCls,\n borderHoverColor,\n outlineColor,\n antCls\n } = token;\n const overwriteStyle = overwriteDefaultBorder ? {\n [`${componentCls}-selector`]: {\n borderColor: borderHoverColor\n }\n } : {};\n return {\n [rootSelectCls]: {\n [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: Object.assign(Object.assign({}, overwriteStyle), {\n [`${componentCls}-focused& ${componentCls}-selector`]: {\n borderColor: borderHoverColor,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${outlineColor}`,\n borderInlineEndWidth: `${token.controlLineWidth}px !important`,\n outline: 0\n },\n [`&:hover ${componentCls}-selector`]: {\n borderColor: borderHoverColor,\n borderInlineEndWidth: `${token.controlLineWidth}px !important`\n }\n })\n }\n };\n};\n// ============================== Styles ==============================\n// /* Reset search input style */\nconst getSearchInputWithoutBorderStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-selection-search-input`]: {\n margin: 0,\n padding: 0,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n appearance: 'none',\n '&::-webkit-search-cancel-button': {\n display: 'none',\n '-webkit-appearance': 'none'\n }\n }\n };\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n inputPaddingHorizontalBase,\n iconCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n cursor: 'pointer',\n [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: Object.assign(Object.assign({}, genSelectorStyle(token)), getSearchInputWithoutBorderStyle(token)),\n // [`&:not(&-disabled):hover ${selectCls}-selector`]: {\n // ...genHoverStyle(token),\n // },\n // ======================== Selection ========================\n [`${componentCls}-selection-item`]: Object.assign({\n flex: 1,\n fontWeight: 'normal'\n }, textEllipsis),\n // ======================= Placeholder =======================\n [`${componentCls}-selection-placeholder`]: Object.assign(Object.assign({}, textEllipsis), {\n flex: 1,\n color: token.colorTextPlaceholder,\n pointerEvents: 'none'\n }),\n // ========================== Arrow ==========================\n [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 'auto',\n insetInlineEnd: inputPaddingHorizontalBase,\n height: token.fontSizeIcon,\n marginTop: -token.fontSizeIcon / 2,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n lineHeight: 1,\n textAlign: 'center',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n [iconCls]: {\n verticalAlign: 'top',\n transition: `transform ${token.motionDurationSlow}`,\n '> svg': {\n verticalAlign: 'top'\n },\n [`&:not(${componentCls}-suffix)`]: {\n pointerEvents: 'auto'\n }\n },\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n },\n '> *:not(:last-child)': {\n marginInlineEnd: 8 // FIXME: magic\n }\n }),\n\n // ========================== Clear ==========================\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 'auto',\n insetInlineEnd: inputPaddingHorizontalBase,\n zIndex: 1,\n display: 'inline-block',\n width: token.fontSizeIcon,\n height: token.fontSizeIcon,\n marginTop: -token.fontSizeIcon / 2,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n fontStyle: 'normal',\n lineHeight: 1,\n textAlign: 'center',\n textTransform: 'none',\n background: token.colorBgContainer,\n cursor: 'pointer',\n opacity: 0,\n transition: `color ${token.motionDurationMid} ease, opacity ${token.motionDurationSlow} ease`,\n textRendering: 'auto',\n '&:before': {\n display: 'block'\n },\n '&:hover': {\n color: token.colorTextTertiary\n }\n },\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n }\n }),\n // ========================= Feedback ==========================\n [`${componentCls}-has-feedback`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontalBase + token.fontSize + token.paddingXXS\n }\n }\n };\n};\n// ============================== Styles ==============================\nconst genSelectStyle = token => {\n const {\n componentCls\n } = token;\n return [{\n [componentCls]: {\n // ==================== BorderLess ====================\n [`&-borderless ${componentCls}-selector`]: {\n backgroundColor: `transparent !important`,\n borderColor: `transparent !important`,\n boxShadow: `none !important`\n },\n // ==================== In Form ====================\n [`&${componentCls}-in-form-item`]: {\n width: '100%'\n }\n }\n },\n // =====================================================\n // == LTR ==\n // =====================================================\n // Base\n genBaseStyle(token),\n // Single\n genSingleStyle(token),\n // Multiple\n genMultipleStyle(token),\n // Dropdown\n genDropdownStyle(token),\n // =====================================================\n // == RTL ==\n // =====================================================\n {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n },\n // =====================================================\n // == Status ==\n // =====================================================\n genStatusStyle(componentCls, mergeToken(token, {\n borderHoverColor: token.colorPrimaryHover,\n outlineColor: token.controlOutline\n })), genStatusStyle(`${componentCls}-status-error`, mergeToken(token, {\n borderHoverColor: token.colorErrorHover,\n outlineColor: token.colorErrorOutline\n }), true), genStatusStyle(`${componentCls}-status-warning`, mergeToken(token, {\n borderHoverColor: token.colorWarningHover,\n outlineColor: token.colorWarningOutline\n }), true),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n borderElCls: `${componentCls}-selector`,\n focusElCls: `${componentCls}-focused`\n })];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Select', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const selectToken = mergeToken(token, {\n rootPrefixCls,\n inputPaddingHorizontalBase: token.paddingSM - 1\n });\n return [genSelectStyle(selectToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 50\n}));","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport getIcons from './utils/iconUtil';\nimport useStyle from './style';\nimport genPurePanel from '../_util/PurePanel';\nimport warning from '../_util/warning';\nimport { useCompactItemContext } from '../space/Compact';\nconst SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nconst InternalSelect = (_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n bordered = true,\n className,\n getPopupContainer,\n popupClassName,\n dropdownClassName,\n listHeight = 256,\n placement,\n listItemHeight = 24,\n size: customizeSize,\n disabled: customDisabled,\n notFoundContent,\n status: customStatus,\n showArrow\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"showArrow\"]);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction,\n virtual,\n dropdownMatchSelectWidth,\n select\n } = React.useContext(ConfigContext);\n const size = React.useContext(SizeContext);\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mode = React.useMemo(() => {\n const {\n mode: m\n } = props;\n if (m === 'combobox') {\n return undefined;\n }\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n return m;\n }, [props.mode]);\n const isMultiple = mode === 'multiple' || mode === 'tags';\n const mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !(isMultiple || mode === 'combobox');\n // ===================== Form Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Empty =====================\n let mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }\n // ===================== Icons =====================\n const {\n suffixIcon,\n itemIcon,\n removeIcon,\n clearIcon\n } = getIcons(Object.assign(Object.assign({}, props), {\n multiple: isMultiple,\n hasFeedback,\n feedbackIcon,\n showArrow: mergedShowArrow,\n prefixCls\n }));\n const selectProps = omit(props, ['suffixIcon', 'itemIcon']);\n const rcSelectRtlDropdownClassName = classNames(popupClassName || dropdownClassName, {\n [`${prefixCls}-dropdown-${direction}`]: direction === 'rtl'\n }, hashId);\n const mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const mergedClassName = classNames({\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className, hashId);\n // ===================== Placement =====================\n const getPlacement = () => {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n // ====================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Select', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n // ====================== Render =======================\n return wrapSSR( /*#__PURE__*/React.createElement(RcSelect, Object.assign({\n ref: ref,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n showSearch: select === null || select === void 0 ? void 0 : select.showSearch\n }, selectProps, {\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), props.transitionName),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n placement: getPlacement(),\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropdownClassName,\n showArrow: hasFeedback || showArrow,\n disabled: mergedDisabled\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n InternalSelect.displayName = 'Select';\n}\nconst Select = /*#__PURE__*/React.forwardRef(InternalSelect);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Select);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Select;","import * as React from 'react';\nimport Select from '../select';\nconst MiniSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n size: \"small\"\n}));\nconst MiddleSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n size: \"middle\"\n}));\nMiniSelect.Option = Select.Option;\nMiddleSelect.Option = Select.Option;\nexport { MiniSelect, MiddleSelect };","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { clearFix, resetComponent } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nexport const genPlaceholderStyle = color => ({\n // Firefox\n '&::-moz-placeholder': {\n opacity: 1\n },\n '&::placeholder': {\n color,\n userSelect: 'none' // https://github.com/ant-design/ant-design/pull/32639\n },\n\n '&:placeholder-shown': {\n textOverflow: 'ellipsis'\n }\n});\nexport const genHoverStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n borderInlineEndWidth: token.lineWidth\n});\nexport const genActiveStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`,\n borderInlineEndWidth: token.lineWidth,\n outline: 0\n});\nexport const genDisabledStyle = token => ({\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n boxShadow: 'none',\n cursor: 'not-allowed',\n opacity: 1,\n '&:hover': Object.assign({}, genHoverStyle(mergeToken(token, {\n inputBorderHoverColor: token.colorBorder\n })))\n});\nconst genInputLargeStyle = token => {\n const {\n inputPaddingVerticalLG,\n fontSizeLG,\n lineHeightLG,\n borderRadiusLG,\n inputPaddingHorizontalLG\n } = token;\n return {\n padding: `${inputPaddingVerticalLG}px ${inputPaddingHorizontalLG}px`,\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG,\n borderRadius: borderRadiusLG\n };\n};\nexport const genInputSmallStyle = token => ({\n padding: `${token.inputPaddingVerticalSM}px ${token.controlPaddingHorizontalSM - 1}px`,\n borderRadius: token.borderRadiusSM\n});\nexport const genStatusStyle = (token, parentCls) => {\n const {\n componentCls,\n colorError,\n colorWarning,\n colorErrorOutline,\n colorWarningOutline,\n colorErrorBorderHover,\n colorWarningBorderHover\n } = token;\n return {\n [`&-status-error:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorError,\n '&:hover': {\n borderColor: colorErrorBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorError,\n inputBorderHoverColor: colorError,\n controlOutline: colorErrorOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorError\n }\n },\n [`&-status-warning:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorWarning,\n '&:hover': {\n borderColor: colorWarningBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorWarning,\n inputBorderHoverColor: colorWarning,\n controlOutline: colorWarningOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorWarning\n }\n }\n };\n};\nexport const genBasicInputStyle = token => Object.assign(Object.assign({\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n minWidth: 0,\n padding: `${token.inputPaddingVertical}px ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n backgroundColor: token.colorBgContainer,\n backgroundImage: 'none',\n borderWidth: token.lineWidth,\n borderStyle: token.lineType,\n borderColor: token.colorBorder,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid}`\n}, genPlaceholderStyle(token.colorTextPlaceholder)), {\n '&:hover': Object.assign({}, genHoverStyle(token)),\n '&:focus, &-focused': Object.assign({}, genActiveStyle(token)),\n '&-disabled, &[disabled]': Object.assign({}, genDisabledStyle(token)),\n '&-borderless': {\n '&, &:hover, &:focus, &-focused, &-disabled, &[disabled]': {\n backgroundColor: 'transparent',\n border: 'none',\n boxShadow: 'none'\n }\n },\n // Reset height for `textarea`s\n 'textarea&': {\n maxWidth: '100%',\n height: 'auto',\n minHeight: token.controlHeight,\n lineHeight: token.lineHeight,\n verticalAlign: 'bottom',\n transition: `all ${token.motionDurationSlow}, height 0s`,\n resize: 'vertical'\n },\n // Size\n '&-lg': Object.assign({}, genInputLargeStyle(token)),\n '&-sm': Object.assign({}, genInputSmallStyle(token)),\n // RTL\n '&-rtl': {\n direction: 'rtl'\n },\n '&-textarea-rtl': {\n direction: 'rtl'\n }\n});\nexport const genInputGroupStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n position: 'relative',\n display: 'table',\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0,\n // Undo padding and float of grid classes\n [`&[class*='col-']`]: {\n paddingInlineEnd: token.paddingXS,\n '&:last-child': {\n paddingInlineEnd: 0\n }\n },\n // Sizing options\n [`&-lg ${componentCls}, &-lg > ${componentCls}-group-addon`]: Object.assign({}, genInputLargeStyle(token)),\n [`&-sm ${componentCls}, &-sm > ${componentCls}-group-addon`]: Object.assign({}, genInputSmallStyle(token)),\n // Fix https://github.com/ant-design/ant-design/issues/5754\n [`&-lg ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightLG\n },\n [`&-sm ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightSM\n },\n [`> ${componentCls}`]: {\n display: 'table-cell',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n [`${componentCls}-group`]: {\n [`&-addon, &-wrap`]: {\n display: 'table-cell',\n width: 1,\n whiteSpace: 'nowrap',\n verticalAlign: 'middle',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n '&-wrap > *': {\n display: 'block !important'\n },\n '&-addon': {\n position: 'relative',\n padding: `0 ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n textAlign: 'center',\n backgroundColor: token.colorFillAlter,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationSlow}`,\n lineHeight: 1,\n // Reset Select's style in addon\n [`${antCls}-select`]: {\n margin: `-${token.inputPaddingVertical + 1}px -${token.inputPaddingHorizontal}px`,\n [`&${antCls}-select-single:not(${antCls}-select-customize-input)`]: {\n [`${antCls}-select-selector`]: {\n backgroundColor: 'inherit',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n boxShadow: 'none'\n }\n },\n '&-open, &-focused': {\n [`${antCls}-select-selector`]: {\n color: token.colorPrimary\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/31333\n [`${antCls}-cascader-picker`]: {\n margin: `-9px -${token.inputPaddingHorizontal}px`,\n backgroundColor: 'transparent',\n [`${antCls}-cascader-input`]: {\n textAlign: 'start',\n border: 0,\n boxShadow: 'none'\n }\n }\n },\n '&-addon:first-child': {\n borderInlineEnd: 0\n },\n '&-addon:last-child': {\n borderInlineStart: 0\n }\n },\n [`${componentCls}`]: {\n width: '100%',\n marginBottom: 0,\n textAlign: 'inherit',\n '&:focus': {\n zIndex: 1,\n borderInlineEndWidth: 1\n },\n '&:hover': {\n zIndex: 1,\n borderInlineEndWidth: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }\n },\n // Reset rounded corners\n [`> ${componentCls}:first-child, ${componentCls}-group-addon:first-child`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}-affix-wrapper`]: {\n [`&:not(:first-child) ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n },\n [`&:not(:last-child) ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}:last-child, ${componentCls}-group-addon:last-child`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n '&:not(:last-child)': {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n [`${componentCls}-search &`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n }\n },\n [`&:not(:first-child), ${componentCls}-search &:not(:first-child)`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&${componentCls}-group-compact`]: Object.assign(Object.assign({\n display: 'block'\n }, clearFix()), {\n [`${componentCls}-group-addon, ${componentCls}-group-wrap, > ${componentCls}`]: {\n '&:not(:first-child):not(:last-child)': {\n borderInlineEndWidth: token.lineWidth,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n }\n },\n '& > *': {\n display: 'inline-block',\n float: 'none',\n verticalAlign: 'top',\n borderRadius: 0\n },\n [`& > ${componentCls}-affix-wrapper`]: {\n display: 'inline-flex'\n },\n [`& > ${antCls}-picker-range`]: {\n display: 'inline-flex'\n },\n '& > *:not(:last-child)': {\n marginInlineEnd: -token.lineWidth,\n borderInlineEndWidth: token.lineWidth\n },\n // Undo float for .ant-input-group .ant-input\n [`${componentCls}`]: {\n float: 'none'\n },\n // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n [`& > ${antCls}-select > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete ${componentCls},\n & > ${antCls}-cascader-picker ${componentCls},\n & > ${componentCls}-group-wrapper ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderRadius: 0,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n },\n [`& > ${antCls}-select-focused`]: {\n zIndex: 1\n },\n // update z-index for arrow icon\n [`& > ${antCls}-select > ${antCls}-select-arrow`]: {\n zIndex: 1 // https://github.com/ant-design/ant-design/issues/20371\n },\n [`& > *:first-child,\n & > ${antCls}-select:first-child > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete:first-child ${componentCls},\n & > ${antCls}-cascader-picker:first-child ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n },\n [`& > *:last-child,\n & > ${antCls}-select:last-child > ${antCls}-select-selector,\n & > ${antCls}-cascader-picker:last-child ${componentCls},\n & > ${antCls}-cascader-picker-focused:last-child ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius\n },\n // https://github.com/ant-design/ant-design/issues/12493\n [`& > ${antCls}-select-auto-complete ${componentCls}`]: {\n verticalAlign: 'top'\n },\n [`${componentCls}-group-wrapper + ${componentCls}-group-wrapper`]: {\n marginInlineStart: -token.lineWidth,\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`${componentCls}-group-wrapper:not(:last-child)`]: {\n [`&${componentCls}-search > ${componentCls}-group`]: {\n [`& > ${componentCls}-group-addon > ${componentCls}-search-button`]: {\n borderRadius: 0\n },\n [`& > ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: token.borderRadius\n }\n }\n }\n })\n };\n};\nconst genInputStyle = token => {\n const {\n componentCls,\n controlHeightSM,\n lineWidth\n } = token;\n const FIXED_CHROME_COLOR_HEIGHT = 16;\n const colorSmallPadding = (controlHeightSM - lineWidth * 2 - FIXED_CHROME_COLOR_HEIGHT) / 2;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genStatusStyle(token, componentCls)), {\n '&[type=\"color\"]': {\n height: token.controlHeight,\n [`&${componentCls}-lg`]: {\n height: token.controlHeightLG\n },\n [`&${componentCls}-sm`]: {\n height: controlHeightSM,\n paddingTop: colorSmallPadding,\n paddingBottom: colorSmallPadding\n }\n },\n '&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration': {\n '-webkit-appearance': 'none'\n }\n })\n };\n};\nconst genAllowClearStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ========================= Input =========================\n [`${componentCls}-clear-icon`]: {\n margin: 0,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n verticalAlign: -1,\n // https://github.com/ant-design/ant-design/pull/18151\n // https://codesandbox.io/s/wizardly-sun-u10br\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextTertiary\n },\n '&:active': {\n color: token.colorText\n },\n '&-hidden': {\n visibility: 'hidden'\n },\n '&-has-suffix': {\n margin: `0 ${token.inputAffixPadding}px`\n }\n },\n // ======================= TextArea ========================\n '&-textarea-with-clear-btn': {\n padding: '0 !important',\n border: '0 !important',\n [`${componentCls}-clear-icon`]: {\n position: 'absolute',\n insetBlockStart: token.paddingXS,\n insetInlineEnd: token.paddingXS,\n zIndex: 1\n }\n }\n };\n};\nconst genAffixStyle = token => {\n const {\n componentCls,\n inputAffixPadding,\n colorTextDescription,\n motionDurationSlow,\n colorIcon,\n colorIconHover,\n iconCls\n } = token;\n return {\n [`${componentCls}-affix-wrapper`]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n display: 'inline-flex',\n [`&:not(${componentCls}-affix-wrapper-disabled):hover`]: Object.assign(Object.assign({}, genHoverStyle(token)), {\n zIndex: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }),\n '&-focused, &:focus': {\n zIndex: 1\n },\n '&-disabled': {\n [`${componentCls}[disabled]`]: {\n background: 'transparent'\n }\n },\n [`> input${componentCls}`]: {\n padding: 0,\n fontSize: 'inherit',\n border: 'none',\n borderRadius: 0,\n outline: 'none',\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n '&::before': {\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n },\n [`${componentCls}`]: {\n '&-prefix, &-suffix': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n '> *:not(:last-child)': {\n marginInlineEnd: token.paddingXS\n }\n },\n '&-show-count-suffix': {\n color: colorTextDescription\n },\n '&-show-count-has-suffix': {\n marginInlineEnd: token.paddingXXS\n },\n '&-prefix': {\n marginInlineEnd: inputAffixPadding\n },\n '&-suffix': {\n marginInlineStart: inputAffixPadding\n }\n }\n }), genAllowClearStyle(token)), {\n // password\n [`${iconCls}${componentCls}-password-icon`]: {\n color: colorIcon,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n }), genStatusStyle(token, `${componentCls}-affix-wrapper`))\n };\n};\nconst genGroupStyle = token => {\n const {\n componentCls,\n colorError,\n colorSuccess,\n borderRadiusLG,\n borderRadiusSM\n } = token;\n return {\n [`${componentCls}-group`]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n '&-rtl': {\n direction: 'rtl'\n },\n '&-wrapper': {\n display: 'inline-block',\n width: '100%',\n textAlign: 'start',\n verticalAlign: 'top',\n '&-rtl': {\n direction: 'rtl'\n },\n // Size\n '&-lg': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusLG\n }\n },\n '&-sm': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusSM\n }\n },\n // Status\n '&-status-error': {\n [`${componentCls}-group-addon`]: {\n color: colorError,\n borderColor: colorError\n }\n },\n '&-status-warning': {\n [`${componentCls}-group-addon:last-child`]: {\n color: colorSuccess,\n borderColor: colorSuccess\n }\n }\n }\n })\n };\n};\nconst genSearchInputStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const searchPrefixCls = `${componentCls}-search`;\n return {\n [searchPrefixCls]: {\n [`${componentCls}`]: {\n '&:hover, &:focus': {\n borderColor: token.colorPrimaryHover,\n [`+ ${componentCls}-group-addon ${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n borderInlineStartColor: token.colorPrimaryHover\n }\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n },\n // fix slight height diff in Firefox:\n // https://ant.design/components/auto-complete-cn/#components-auto-complete-demo-certain-category\n [`${componentCls}-lg`]: {\n lineHeight: token.lineHeightLG - 0.0002\n },\n [`> ${componentCls}-group`]: {\n [`> ${componentCls}-group-addon:last-child`]: {\n insetInlineStart: -1,\n padding: 0,\n border: 0,\n [`${searchPrefixCls}-button`]: {\n paddingTop: 0,\n paddingBottom: 0,\n borderStartStartRadius: 0,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius,\n borderEndStartRadius: 0\n },\n [`${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n color: token.colorTextDescription,\n '&:hover': {\n color: token.colorPrimaryHover\n },\n '&:active': {\n color: token.colorPrimaryActive\n },\n [`&${antCls}-btn-loading::before`]: {\n insetInlineStart: 0,\n insetInlineEnd: 0,\n insetBlockStart: 0,\n insetBlockEnd: 0\n }\n }\n }\n },\n [`${searchPrefixCls}-button`]: {\n height: token.controlHeight,\n '&:hover, &:focus': {\n zIndex: 1\n }\n },\n [`&-large ${searchPrefixCls}-button`]: {\n height: token.controlHeightLG\n },\n [`&-small ${searchPrefixCls}-button`]: {\n height: token.controlHeightSM\n },\n '&-rtl': {\n direction: 'rtl'\n },\n // ===================== Compact Item Customized Styles =====================\n [`&${componentCls}-compact-item`]: {\n [`&:not(${componentCls}-compact-last-item)`]: {\n [`${componentCls}-group-addon`]: {\n [`${componentCls}-search-button`]: {\n marginInlineEnd: -token.lineWidth,\n borderRadius: 0\n }\n }\n },\n [`&:not(${componentCls}-compact-first-item)`]: {\n [`${componentCls},${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`> ${componentCls}-group-addon ${componentCls}-search-button,\n > ${componentCls},\n ${componentCls}-affix-wrapper`]: {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n }\n },\n [`> ${componentCls}-affix-wrapper-focused`]: {\n zIndex: 2\n }\n }\n }\n };\n};\nexport function initInputToken(token) {\n // @ts-ignore\n return mergeToken(token, {\n inputAffixPadding: token.paddingXXS,\n inputPaddingVertical: Math.max(Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 3),\n inputPaddingVerticalLG: Math.ceil((token.controlHeightLG - token.fontSizeLG * token.lineHeightLG) / 2 * 10) / 10 - token.lineWidth,\n inputPaddingVerticalSM: Math.max(Math.round((token.controlHeightSM - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 0),\n inputPaddingHorizontal: token.paddingSM - token.lineWidth,\n inputPaddingHorizontalSM: token.paddingXS - token.lineWidth,\n inputPaddingHorizontalLG: token.controlPaddingHorizontal - token.lineWidth,\n inputBorderHoverColor: token.colorPrimaryHover,\n inputBorderActiveColor: token.colorPrimaryHover\n });\n}\nconst genTextAreaStyle = token => {\n const {\n componentCls,\n inputPaddingHorizontal,\n paddingLG\n } = token;\n const textareaPrefixCls = `${componentCls}-textarea`;\n return {\n [textareaPrefixCls]: {\n position: 'relative',\n [`${textareaPrefixCls}-suffix`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: inputPaddingHorizontal,\n bottom: 0,\n zIndex: 1,\n display: 'inline-flex',\n alignItems: 'center',\n margin: 'auto'\n },\n [`&-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating`]: {\n [`&${textareaPrefixCls}-has-feedback`]: {\n [`${componentCls}`]: {\n paddingInlineEnd: paddingLG\n }\n }\n },\n '&-show-count': {\n // https://github.com/ant-design/ant-design/issues/33049\n [`> ${componentCls}`]: {\n height: '100%'\n },\n '&::after': {\n color: token.colorTextDescription,\n whiteSpace: 'nowrap',\n content: 'attr(data-count)',\n pointerEvents: 'none',\n float: 'right'\n }\n },\n '&-rtl': {\n '&::after': {\n float: 'left'\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Input', token => {\n const inputToken = initInputToken(token);\n return [genInputStyle(inputToken), genTextAreaStyle(inputToken), genAffixStyle(inputToken), genGroupStyle(inputToken), genSearchInputStyle(inputToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(inputToken)];\n});","import { genBasicInputStyle, genInputSmallStyle, initInputToken } from '../../input/style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusOutline, genFocusStyle, resetComponent } from '../../style';\nconst genPaginationDisabledStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-disabled`]: {\n '&, &:hover': {\n cursor: 'not-allowed',\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n '&:focus-visible': {\n cursor: 'not-allowed',\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n },\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`${componentCls}-item`]: {\n cursor: 'not-allowed',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n },\n a: {\n color: token.colorTextDisabled,\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'not-allowed'\n },\n '&-active': {\n borderColor: token.colorBorder,\n backgroundColor: token.paginationItemDisabledBgActive,\n '&:hover, &:active': {\n backgroundColor: token.paginationItemDisabledBgActive\n },\n a: {\n color: token.paginationItemDisabledColorActive\n }\n }\n },\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n },\n [`${componentCls}-simple&`]: {\n backgroundColor: 'transparent'\n }\n },\n [`${componentCls}-item-link-icon`]: {\n opacity: 0\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 1\n },\n [`${componentCls}-simple-pager`]: {\n color: token.colorTextDisabled\n }\n }\n };\n};\nconst genPaginationMiniStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`&${componentCls}-mini ${componentCls}-total-text, &${componentCls}-mini ${componentCls}-simple-pager`]: {\n height: token.paginationItemSizeSM,\n lineHeight: `${token.paginationItemSizeSM}px`\n },\n [`&${componentCls}-mini ${componentCls}-item`]: {\n minWidth: token.paginationItemSizeSM,\n height: token.paginationItemSizeSM,\n margin: 0,\n lineHeight: `${token.paginationItemSizeSM - 2}px`\n },\n [`&${componentCls}-mini ${componentCls}-item:not(${componentCls}-item-active)`]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent'\n },\n [`&${componentCls}-mini ${componentCls}-prev, &${componentCls}-mini ${componentCls}-next`]: {\n minWidth: token.paginationItemSizeSM,\n height: token.paginationItemSizeSM,\n margin: 0,\n lineHeight: `${token.paginationItemSizeSM}px`\n },\n [`\n &${componentCls}-mini ${componentCls}-prev ${componentCls}-item-link,\n &${componentCls}-mini ${componentCls}-next ${componentCls}-item-link\n `]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n '&::after': {\n height: token.paginationItemSizeSM,\n lineHeight: `${token.paginationItemSizeSM}px`\n }\n },\n [`&${componentCls}-mini ${componentCls}-jump-prev, &${componentCls}-mini ${componentCls}-jump-next`]: {\n height: token.paginationItemSizeSM,\n marginInlineEnd: 0,\n lineHeight: `${token.paginationItemSizeSM}px`\n },\n [`&${componentCls}-mini ${componentCls}-options`]: {\n marginInlineStart: token.paginationMiniOptionsMarginInlineStart,\n [`&-size-changer`]: {\n top: token.paginationMiniOptionsSizeChangerTop\n },\n [`&-quick-jumper`]: {\n height: token.paginationItemSizeSM,\n lineHeight: `${token.paginationItemSizeSM}px`,\n input: Object.assign(Object.assign({}, genInputSmallStyle(token)), {\n width: token.paginationMiniQuickJumperInputWidth,\n height: token.controlHeightSM\n })\n }\n }\n };\n};\nconst genPaginationSimpleStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`\n &${componentCls}-simple ${componentCls}-prev,\n &${componentCls}-simple ${componentCls}-next\n `]: {\n height: token.paginationItemSizeSM,\n lineHeight: `${token.paginationItemSizeSM}px`,\n verticalAlign: 'top',\n [`${componentCls}-item-link`]: {\n height: token.paginationItemSizeSM,\n backgroundColor: 'transparent',\n border: 0,\n '&::after': {\n height: token.paginationItemSizeSM,\n lineHeight: `${token.paginationItemSizeSM}px`\n }\n }\n },\n [`&${componentCls}-simple ${componentCls}-simple-pager`]: {\n display: 'inline-block',\n height: token.paginationItemSizeSM,\n marginInlineEnd: token.marginXS,\n input: {\n boxSizing: 'border-box',\n height: '100%',\n marginInlineEnd: token.marginXS,\n padding: `0 ${token.paginationItemPaddingInline}px`,\n textAlign: 'center',\n backgroundColor: token.paginationItemInputBg,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadius,\n outline: 'none',\n transition: `border-color ${token.motionDurationMid}`,\n color: 'inherit',\n '&:hover': {\n borderColor: token.colorPrimary\n },\n '&:focus': {\n borderColor: token.colorPrimaryHover,\n boxShadow: `${token.inputOutlineOffset}px 0 ${token.controlOutlineWidth}px ${token.controlOutline}`\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n cursor: 'not-allowed'\n }\n }\n }\n };\n};\nconst genPaginationJumpStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n outline: 0,\n [`${componentCls}-item-container`]: {\n position: 'relative',\n [`${componentCls}-item-link-icon`]: {\n color: token.colorPrimary,\n fontSize: token.fontSizeSM,\n opacity: 0,\n transition: `all ${token.motionDurationMid}`,\n '&-svg': {\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n margin: 'auto'\n }\n },\n [`${componentCls}-item-ellipsis`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n display: 'block',\n margin: 'auto',\n color: token.colorTextDisabled,\n fontFamily: 'Arial, Helvetica, sans-serif',\n letterSpacing: token.paginationEllipsisLetterSpacing,\n textAlign: 'center',\n textIndent: token.paginationEllipsisTextIndent,\n opacity: 1,\n transition: `all ${token.motionDurationMid}`\n }\n },\n '&:hover': {\n [`${componentCls}-item-link-icon`]: {\n opacity: 1\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 0\n }\n },\n '&:focus-visible': Object.assign({\n [`${componentCls}-item-link-icon`]: {\n opacity: 1\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 0\n }\n }, genFocusOutline(token))\n },\n [`\n ${componentCls}-prev,\n ${componentCls}-jump-prev,\n ${componentCls}-jump-next\n `]: {\n marginInlineEnd: token.marginXS\n },\n [`\n ${componentCls}-prev,\n ${componentCls}-next,\n ${componentCls}-jump-prev,\n ${componentCls}-jump-next\n `]: {\n display: 'inline-block',\n minWidth: token.paginationItemSize,\n height: token.paginationItemSize,\n color: token.colorText,\n fontFamily: token.paginationFontFamily,\n lineHeight: `${token.paginationItemSize}px`,\n textAlign: 'center',\n verticalAlign: 'middle',\n listStyle: 'none',\n borderRadius: token.borderRadius,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n fontFamily: 'Arial, Helvetica, sans-serif',\n outline: 0,\n button: {\n color: token.colorText,\n cursor: 'pointer',\n userSelect: 'none'\n },\n [`${componentCls}-item-link`]: {\n display: 'block',\n width: '100%',\n height: '100%',\n padding: 0,\n fontSize: token.fontSizeSM,\n textAlign: 'center',\n backgroundColor: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n borderRadius: token.borderRadius,\n outline: 'none',\n transition: `border ${token.motionDurationMid}`\n },\n [`&:focus-visible ${componentCls}-item-link`]: Object.assign({}, genFocusOutline(token)),\n [`&:hover ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextHover\n },\n [`&:active ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextActive\n },\n [`&${componentCls}-disabled:hover`]: {\n [`${componentCls}-item-link`]: {\n backgroundColor: 'transparent'\n }\n }\n },\n [`${componentCls}-slash`]: {\n marginInlineEnd: token.paginationSlashMarginInlineEnd,\n marginInlineStart: token.paginationSlashMarginInlineStart\n },\n [`${componentCls}-options`]: {\n display: 'inline-block',\n marginInlineStart: token.margin,\n verticalAlign: 'middle',\n '&-size-changer.-select': {\n display: 'inline-block',\n width: 'auto'\n },\n '&-quick-jumper': {\n display: 'inline-block',\n height: token.controlHeight,\n marginInlineStart: token.marginXS,\n lineHeight: `${token.controlHeight}px`,\n verticalAlign: 'top',\n input: Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n width: token.controlHeightLG * 1.25,\n height: token.controlHeight,\n boxSizing: 'border-box',\n margin: 0,\n marginInlineStart: token.marginXS,\n marginInlineEnd: token.marginXS\n })\n }\n }\n };\n};\nconst genPaginationItemStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-item`]: Object.assign(Object.assign({\n display: 'inline-block',\n minWidth: token.paginationItemSize,\n height: token.paginationItemSize,\n marginInlineEnd: token.marginXS,\n fontFamily: token.paginationFontFamily,\n lineHeight: `${token.paginationItemSize - 2}px`,\n textAlign: 'center',\n verticalAlign: 'middle',\n listStyle: 'none',\n backgroundColor: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n borderRadius: token.borderRadius,\n outline: 0,\n cursor: 'pointer',\n userSelect: 'none',\n a: {\n display: 'block',\n padding: `0 ${token.paginationItemPaddingInline}px`,\n color: token.colorText,\n transition: 'none',\n '&:hover': {\n textDecoration: 'none'\n }\n },\n [`&:not(${componentCls}-item-active)`]: {\n '&:hover': {\n transition: `all ${token.motionDurationMid}`,\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n }\n }, genFocusStyle(token)), {\n '&-active': {\n fontWeight: token.paginationFontWeightActive,\n backgroundColor: token.paginationItemBgActive,\n borderColor: token.colorPrimary,\n a: {\n color: token.colorPrimary\n },\n '&:hover': {\n borderColor: token.colorPrimaryHover\n },\n '&:hover a': {\n color: token.colorPrimaryHover\n }\n }\n })\n };\n};\nconst genPaginationStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n 'ul, ol': {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n '&::after': {\n display: 'block',\n clear: 'both',\n height: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n content: '\"\"'\n },\n [`${componentCls}-total-text`]: {\n display: 'inline-block',\n height: token.paginationItemSize,\n marginInlineEnd: token.marginXS,\n lineHeight: `${token.paginationItemSize - 2}px`,\n verticalAlign: 'middle'\n }\n }), genPaginationItemStyle(token)), genPaginationJumpStyle(token)), genPaginationSimpleStyle(token)), genPaginationMiniStyle(token)), genPaginationDisabledStyle(token)), {\n // media query style\n [`@media only screen and (max-width: ${token.screenLG}px)`]: {\n [`${componentCls}-item`]: {\n '&-after-jump-prev, &-before-jump-next': {\n display: 'none'\n }\n }\n },\n [`@media only screen and (max-width: ${token.screenSM}px)`]: {\n [`${componentCls}-options`]: {\n display: 'none'\n }\n }\n }),\n // rtl style\n [`&${token.componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nconst genBorderedStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}${componentCls}-disabled`]: {\n '&, &:hover': {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder\n }\n },\n '&:focus-visible': {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder\n }\n },\n [`${componentCls}-item, ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n [`&:hover:not(${componentCls}-item-active)`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n a: {\n color: token.colorTextDisabled\n }\n },\n [`&${componentCls}-item-active`]: {\n backgroundColor: token.paginationItemDisabledBgActive\n }\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n '&:hover button': {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n color: token.colorTextDisabled\n },\n [`${componentCls}-item-link`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder\n }\n }\n },\n [componentCls]: {\n [`${componentCls}-prev, ${componentCls}-next`]: {\n '&:hover button': {\n borderColor: token.colorPrimaryHover,\n backgroundColor: token.paginationItemBg\n },\n [`${componentCls}-item-link`]: {\n backgroundColor: token.paginationItemLinkBg,\n borderColor: token.colorBorder\n },\n [`&:hover ${componentCls}-item-link`]: {\n borderColor: token.colorPrimary,\n backgroundColor: token.paginationItemBg,\n color: token.colorPrimary\n },\n [`&${componentCls}-disabled`]: {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder,\n color: token.colorTextDisabled\n }\n }\n },\n [`${componentCls}-item`]: {\n backgroundColor: token.paginationItemBg,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n [`&:hover:not(${componentCls}-item-active)`]: {\n borderColor: token.colorPrimary,\n backgroundColor: token.paginationItemBg,\n a: {\n color: token.colorPrimary\n }\n },\n '&-active': {\n borderColor: token.colorPrimary\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Pagination', token => {\n const paginationToken = mergeToken(token, {\n paginationItemSize: token.controlHeight,\n paginationFontFamily: token.fontFamily,\n paginationItemBg: token.colorBgContainer,\n paginationItemBgActive: token.colorBgContainer,\n paginationFontWeightActive: token.fontWeightStrong,\n paginationItemSizeSM: token.controlHeightSM,\n paginationItemInputBg: token.colorBgContainer,\n paginationMiniOptionsSizeChangerTop: 0,\n paginationItemDisabledBgActive: token.controlItemBgActiveDisabled,\n paginationItemDisabledColorActive: token.colorTextDisabled,\n paginationItemLinkBg: token.colorBgContainer,\n inputOutlineOffset: '0 0',\n paginationMiniOptionsMarginInlineStart: token.marginXXS / 2,\n paginationMiniQuickJumperInputWidth: token.controlHeightLG * 1.1,\n paginationItemPaddingInline: token.marginXXS * 1.5,\n paginationEllipsisLetterSpacing: token.marginXXS / 2,\n paginationSlashMarginInlineStart: token.marginXXS,\n paginationSlashMarginInlineEnd: token.marginSM,\n paginationEllipsisTextIndent: '0.13em' // magic for ui experience\n }, initInputToken(token));\n return [genPaginationStyle(paginationToken), token.wireframe && genBorderedStyle(paginationToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport LocaleReceiver from '../locale/LocaleReceiver';\nimport { MiddleSelect, MiniSelect } from './Select';\nimport useStyle from './style';\nconst Pagination = _a => {\n var {\n prefixCls: customizePrefixCls,\n selectPrefixCls: customizeSelectPrefixCls,\n className,\n size,\n locale: customLocale,\n selectComponentClass,\n responsive,\n showSizeChanger\n } = _a,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\", \"selectComponentClass\", \"responsive\", \"showSizeChanger\"]);\n const {\n xs\n } = useBreakpoint(responsive);\n const {\n getPrefixCls,\n direction,\n pagination = {}\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('pagination', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const mergedShowSizeChanger = showSizeChanger !== null && showSizeChanger !== void 0 ? showSizeChanger : pagination.showSizeChanger;\n const getIconsProps = () => {\n const ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-ellipsis`\n }, \"\\u2022\\u2022\\u2022\");\n let prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: `${prefixCls}-item-link`,\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(LeftOutlined, null));\n let nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: `${prefixCls}-item-link`,\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(RightOutlined, null));\n let jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: `${prefixCls}-item-link`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-container`\n }, /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: `${prefixCls}-item-link-icon`\n }), ellipsis));\n let jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: `${prefixCls}-item-link`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-container`\n }, /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: `${prefixCls}-item-link-icon`\n }), ellipsis));\n // change arrows direction in right-to-left direction\n if (direction === 'rtl') {\n [prevIcon, nextIcon] = [nextIcon, prevIcon];\n [jumpPrevIcon, jumpNextIcon] = [jumpNextIcon, jumpPrevIcon];\n }\n return {\n prevIcon,\n nextIcon,\n jumpPrevIcon,\n jumpNextIcon\n };\n };\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Pagination\",\n defaultLocale: enUS\n }, contextLocale => {\n const locale = Object.assign(Object.assign({}, contextLocale), customLocale);\n const isSmall = size === 'small' || !!(xs && !size && responsive);\n const selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n const extendedClassName = classNames({\n [`${prefixCls}-mini`]: isSmall,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(RcPagination, Object.assign({}, getIconsProps(), restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls,\n className: extendedClassName,\n selectComponentClass: selectComponentClass || (isSmall ? MiniSelect : MiddleSelect),\n locale: locale,\n showSizeChanger: mergedShowSizeChanger\n })));\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","import Pagination from './Pagination';\nexport default Pagination;","/* eslint-disable no-undefined */\n\nimport throttle from './throttle.js';\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nexport default function (delay, callback, options) {\n\tconst { atBegin = false } = options || {};\n\treturn throttle(delay, callback, { debounceMode: atBegin !== false });\n}\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nexport default function (delay, callback, options) {\n\tconst {\n\t\tnoTrailing = false,\n\t\tnoLeading = false,\n\t\tdebounceMode = undefined\n\t} = options || {};\n\t/*\n\t * After wrapper has stopped being called, this timeout ensures that\n\t * `callback` is executed at the proper times in `throttle` and `end`\n\t * debounce modes.\n\t */\n\tlet timeoutID;\n\tlet cancelled = false;\n\n\t// Keep track of the last time `callback` was executed.\n\tlet lastExec = 0;\n\n\t// Function to clear existing timeout\n\tfunction clearExistingTimeout() {\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\t}\n\n\t// Function to cancel next exec\n\tfunction cancel(options) {\n\t\tconst { upcomingOnly = false } = options || {};\n\t\tclearExistingTimeout();\n\t\tcancelled = !upcomingOnly;\n\t}\n\n\t/*\n\t * The `wrapper` function encapsulates all of the throttling / debouncing\n\t * functionality and when executed will limit the rate at which `callback`\n\t * is executed.\n\t */\n\tfunction wrapper(...arguments_) {\n\t\tlet self = this;\n\t\tlet elapsed = Date.now() - lastExec;\n\n\t\tif (cancelled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Date.now();\n\t\t\tcallback.apply(self, arguments_);\n\t\t}\n\n\t\t/*\n\t\t * If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t * to allow future `callback` executions.\n\t\t */\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (!noLeading && debounceMode && !timeoutID) {\n\t\t\t/*\n\t\t\t * Since `wrapper` is being called for the first time and\n\t\t\t * `debounceMode` is true (at begin), execute `callback`\n\t\t\t * and noLeading != true.\n\t\t\t */\n\t\t\texec();\n\t\t}\n\n\t\tclearExistingTimeout();\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\tif (noLeading) {\n\t\t\t\t/*\n\t\t\t\t * In throttle mode with noLeading, if `delay` time has\n\t\t\t\t * been exceeded, update `lastExec` and schedule `callback`\n\t\t\t\t * to execute after `delay` ms.\n\t\t\t\t */\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tif (!noTrailing) {\n\t\t\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, delay);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t/*\n\t\t\t\t * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n\t\t\t\t * `callback`.\n\t\t\t\t */\n\t\t\t\texec();\n\t\t\t}\n\t\t} else if (noTrailing !== true) {\n\t\t\t/*\n\t\t\t * In trailing throttle mode, since `delay` time has not been\n\t\t\t * exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t * recent execution.\n\t\t\t *\n\t\t\t * If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t * after `delay` ms.\n\t\t\t *\n\t\t\t * If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t * execute after `delay` ms.\n\t\t\t */\n\t\t\ttimeoutID = setTimeout(\n\t\t\t\tdebounceMode ? clear : exec,\n\t\t\t\tdebounceMode === undefined ? delay - elapsed : delay\n\t\t\t);\n\t\t}\n\t}\n\n\twrapper.cancel = cancel;\n\n\t// Return the wrapper function.\n\treturn wrapper;\n}\n","import { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst antSpinMove = new Keyframes('antSpinMove', {\n to: {\n opacity: 1\n }\n});\nconst antRotate = new Keyframes('antRotate', {\n to: {\n transform: 'rotate(405deg)'\n }\n});\nconst genSpinStyle = token => ({\n [`${token.componentCls}`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n display: 'none',\n color: token.colorPrimary,\n textAlign: 'center',\n verticalAlign: 'middle',\n opacity: 0,\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`,\n '&-spinning': {\n position: 'static',\n display: 'inline-block',\n opacity: 1\n },\n '&-nested-loading': {\n position: 'relative',\n [`> div > ${token.componentCls}`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n zIndex: 4,\n display: 'block',\n width: '100%',\n height: '100%',\n maxHeight: token.contentHeight,\n [`${token.componentCls}-dot`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: '50%',\n margin: -token.spinDotSize / 2\n },\n [`${token.componentCls}-text`]: {\n position: 'absolute',\n top: '50%',\n width: '100%',\n paddingTop: (token.spinDotSize - token.fontSize) / 2 + 2,\n textShadow: `0 1px 2px ${token.colorBgContainer}` // FIXME: shadow\n },\n\n [`&${token.componentCls}-show-text ${token.componentCls}-dot`]: {\n marginTop: -(token.spinDotSize / 2) - 10\n },\n '&-sm': {\n [`${token.componentCls}-dot`]: {\n margin: -token.spinDotSizeSM / 2\n },\n [`${token.componentCls}-text`]: {\n paddingTop: (token.spinDotSizeSM - token.fontSize) / 2 + 2\n },\n [`&${token.componentCls}-show-text ${token.componentCls}-dot`]: {\n marginTop: -(token.spinDotSizeSM / 2) - 10\n }\n },\n '&-lg': {\n [`${token.componentCls}-dot`]: {\n margin: -(token.spinDotSizeLG / 2)\n },\n [`${token.componentCls}-text`]: {\n paddingTop: (token.spinDotSizeLG - token.fontSize) / 2 + 2\n },\n [`&${token.componentCls}-show-text ${token.componentCls}-dot`]: {\n marginTop: -(token.spinDotSizeLG / 2) - 10\n }\n }\n },\n [`${token.componentCls}-container`]: {\n position: 'relative',\n transition: `opacity ${token.motionDurationSlow}`,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 10,\n width: '100%',\n height: '100%',\n background: token.colorBgContainer,\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n }\n },\n [`${token.componentCls}-blur`]: {\n clear: 'both',\n opacity: 0.5,\n userSelect: 'none',\n pointerEvents: 'none',\n [`&::after`]: {\n opacity: 0.4,\n pointerEvents: 'auto'\n }\n }\n },\n // tip\n // ------------------------------\n [`&-tip`]: {\n color: token.spinDotDefault\n },\n // dots\n // ------------------------------\n [`${token.componentCls}-dot`]: {\n position: 'relative',\n display: 'inline-block',\n fontSize: token.spinDotSize,\n width: '1em',\n height: '1em',\n '&-item': {\n position: 'absolute',\n display: 'block',\n width: (token.spinDotSize - token.marginXXS / 2) / 2,\n height: (token.spinDotSize - token.marginXXS / 2) / 2,\n backgroundColor: token.colorPrimary,\n borderRadius: '100%',\n transform: 'scale(0.75)',\n transformOrigin: '50% 50%',\n opacity: 0.3,\n animationName: antSpinMove,\n animationDuration: '1s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate',\n '&:nth-child(1)': {\n top: 0,\n insetInlineStart: 0\n },\n '&:nth-child(2)': {\n top: 0,\n insetInlineEnd: 0,\n animationDelay: '0.4s'\n },\n '&:nth-child(3)': {\n insetInlineEnd: 0,\n bottom: 0,\n animationDelay: '0.8s'\n },\n '&:nth-child(4)': {\n bottom: 0,\n insetInlineStart: 0,\n animationDelay: '1.2s'\n }\n },\n '&-spin': {\n transform: 'rotate(45deg)',\n animationName: antRotate,\n animationDuration: '1.2s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear'\n }\n },\n // Sizes\n // ------------------------------\n // small\n [`&-sm ${token.componentCls}-dot`]: {\n fontSize: token.spinDotSizeSM,\n i: {\n width: (token.spinDotSizeSM - token.marginXXS / 2) / 2,\n height: (token.spinDotSizeSM - token.marginXXS / 2) / 2\n }\n },\n // large\n [`&-lg ${token.componentCls}-dot`]: {\n fontSize: token.spinDotSizeLG,\n i: {\n width: (token.spinDotSizeLG - token.marginXXS) / 2,\n height: (token.spinDotSizeLG - token.marginXXS) / 2\n }\n },\n [`&${token.componentCls}-show-text ${token.componentCls}-text`]: {\n display: 'block'\n }\n })\n});\n// ============================== Export ==============================\nexport default genComponentStyleHook('Spin', token => {\n const spinToken = mergeToken(token, {\n spinDotDefault: token.colorTextDescription,\n spinDotSize: token.controlHeightLG / 2,\n spinDotSizeSM: token.controlHeightLG * 0.35,\n spinDotSizeLG: token.controlHeight\n });\n return [genSpinStyle(spinToken)];\n}, {\n contentHeight: 400\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport { debounce } from 'throttle-debounce';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport useStyle from './style/index';\nconst SpinSizes = ['small', 'default', 'large'];\n// Render indicator\nlet defaultIndicator = null;\nfunction renderIndicator(prefixCls, props) {\n const {\n indicator\n } = props;\n const dotClassName = `${prefixCls}-dot`;\n // should not be render default indicator when indicator value is null\n if (indicator === null) {\n return null;\n }\n if (isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName)\n });\n }\n if (isValidElement(defaultIndicator)) {\n return cloneElement(defaultIndicator, {\n className: classNames(defaultIndicator.props.className, dotClassName)\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, `${prefixCls}-dot-spin`)\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`\n }));\n}\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\nconst Spin = props => {\n const {\n spinPrefixCls: prefixCls,\n spinning: customSpinning = true,\n delay = 0,\n className,\n size = 'default',\n tip,\n wrapperClassName,\n style,\n children,\n hashId\n } = props,\n restProps = __rest(props, [\"spinPrefixCls\", \"spinning\", \"delay\", \"className\", \"size\", \"tip\", \"wrapperClassName\", \"style\", \"children\", \"hashId\"]);\n const [spinning, setSpinning] = React.useState(() => customSpinning && !shouldDelay(customSpinning, delay));\n React.useEffect(() => {\n const updateSpinning = debounce(delay, () => {\n setSpinning(customSpinning);\n });\n updateSpinning();\n return () => {\n var _a;\n (_a = updateSpinning === null || updateSpinning === void 0 ? void 0 : updateSpinning.cancel) === null || _a === void 0 ? void 0 : _a.call(updateSpinning);\n };\n }, [delay, customSpinning]);\n const isNestedPattern = React.useMemo(() => typeof children !== 'undefined', [children]);\n const {\n direction\n } = React.useContext(ConfigContext);\n const spinClassName = classNames(prefixCls, {\n [`${prefixCls}-sm`]: size === 'small',\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-spinning`]: spinning,\n [`${prefixCls}-show-text`]: !!tip,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n const containerClassName = classNames(`${prefixCls}-container`, {\n [`${prefixCls}-blur`]: spinning\n });\n // fix https://fb.me/react-unknown-prop\n const divProps = omit(restProps, ['indicator', 'prefixCls']);\n const spinElement = /*#__PURE__*/React.createElement(\"div\", Object.assign({}, divProps, {\n style: style,\n className: spinClassName,\n \"aria-live\": \"polite\",\n \"aria-busy\": spinning\n }), renderIndicator(prefixCls, props), tip ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-text`\n }, tip) : null);\n if (isNestedPattern) {\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, divProps, {\n className: classNames(`${prefixCls}-nested-loading`, wrapperClassName, hashId)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, children));\n }\n return spinElement;\n};\nconst SpinFC = props => {\n const {\n prefixCls: customizePrefixCls\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const spinPrefixCls = getPrefixCls('spin', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(spinPrefixCls);\n const spinClassProps = Object.assign(Object.assign({}, props), {\n spinPrefixCls,\n hashId\n });\n return wrapSSR( /*#__PURE__*/React.createElement(Spin, Object.assign({}, spinClassProps)));\n};\nSpinFC.setDefaultIndicator = indicator => {\n defaultIndicator = indicator;\n};\nif (process.env.NODE_ENV !== 'production') {\n SpinFC.displayName = 'Spin';\n}\nexport default SpinFC;","export function isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n}\nexport default function getScroll(target, top) {\n var _a, _b;\n if (typeof window === 'undefined') {\n return 0;\n }\n const method = top ? 'scrollTop' : 'scrollLeft';\n let result = 0;\n if (isWindow(target)) {\n result = target[top ? 'pageYOffset' : 'pageXOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target instanceof HTMLElement) {\n result = target[method];\n } else if (target) {\n // According to the type inference, the `target` is `never` type.\n // Since we configured the loose mode type checking, and supports mocking the target with such shape below::\n // `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`,\n // the program may falls into this branch.\n // Check the corresponding tests for details. Don't sure what is the real scenario this happens.\n result = target[method];\n }\n if (target && !isWindow(target) && typeof result !== 'number') {\n result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b[method];\n }\n return result;\n}","import raf from \"rc-util/es/raf\";\nimport { easeInOutCubic } from './easings';\nimport getScroll, { isWindow } from './getScroll';\nexport default function scrollTo(y) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n getContainer = () => window,\n callback,\n duration = 450\n } = options;\n const container = getContainer();\n const scrollTop = getScroll(container, true);\n const startTime = Date.now();\n const frameFunc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n container.documentElement.scrollTop = nextScrollTop;\n } else {\n container.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n raf(frameFunc);\n}","// eslint-disable-next-line import/prefer-default-export\nexport function easeInOutCubic(t, b, c, d) {\n const cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n // eslint-disable-next-line no-return-assign\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","import classNames from 'classnames';\nimport * as React from 'react';\nfunction renderExpandIcon(locale) {\n return function expandIcon(_ref) {\n let {\n prefixCls,\n onExpand,\n record,\n expanded,\n expandable\n } = _ref;\n const iconPrefix = `${prefixCls}-row-expand-icon`;\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: e => {\n onExpand(record, e);\n e.stopPropagation();\n },\n className: classNames(iconPrefix, {\n [`${iconPrefix}-spaced`]: !expandable,\n [`${iconPrefix}-expanded`]: expandable && expanded,\n [`${iconPrefix}-collapsed`]: expandable && !expanded\n }),\n \"aria-label\": expanded ? locale.collapse : locale.expand,\n \"aria-expanded\": expanded\n });\n };\n}\nexport default renderExpandIcon;","export function getColumnKey(column, defaultKey) {\n if ('key' in column && column.key !== undefined && column.key !== null) {\n return column.key;\n }\n if (column.dataIndex) {\n return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n }\n return defaultKey;\n}\nexport function getColumnPos(index, pos) {\n return pos ? `${pos}-${index}` : `${index}`;\n}\nexport function renderColumnTitle(title, props) {\n if (typeof title === 'function') {\n return title(props);\n }\n return title;\n}\n/**\n * Safe get column title\n *\n * Should filter [object Object]\n *\n * @param title\n * @returns\n */\nexport function safeColumnTitle(title, props) {\n const res = renderColumnTitle(title, props);\n if (Object.prototype.toString.call(res) === '[object Object]') return '';\n return res;\n}","// This icon file is generated automatically.\nvar FilterFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\" } }] }, \"name\": \"filter\", \"theme\": \"filled\" };\nexport default FilterFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FilterFilledSvg from \"@ant-design/icons-svg/es/asn/FilterFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar FilterFilled = function FilterFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FilterFilledSvg\n }));\n};\nFilterFilled.displayName = 'FilterFilled';\nexport default /*#__PURE__*/React.forwardRef(FilterFilled);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nvar Checkbox = /*#__PURE__*/function (_Component) {\n _inherits(Checkbox, _Component);\n\n var _super = _createSuper(Checkbox);\n\n function Checkbox(props) {\n var _this;\n\n _classCallCheck(this, Checkbox);\n\n _this = _super.call(this, props);\n\n _this.handleChange = function (e) {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange;\n\n if (disabled) {\n return;\n }\n\n if (!('checked' in _this.props)) {\n _this.setState({\n checked: e.target.checked\n });\n }\n\n if (onChange) {\n onChange({\n target: _objectSpread(_objectSpread({}, _this.props), {}, {\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n nativeEvent: e.nativeEvent\n });\n }\n };\n\n _this.saveInput = function (node) {\n _this.input = node;\n };\n\n var checked = 'checked' in props ? props.checked : props.defaultChecked;\n _this.state = {\n checked: checked\n };\n return _this;\n }\n\n _createClass(Checkbox, [{\n key: \"focus\",\n value: function focus() {\n this.input.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.input.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n style = _this$props2.style,\n name = _this$props2.name,\n id = _this$props2.id,\n type = _this$props2.type,\n disabled = _this$props2.disabled,\n readOnly = _this$props2.readOnly,\n tabIndex = _this$props2.tabIndex,\n onClick = _this$props2.onClick,\n onFocus = _this$props2.onFocus,\n onBlur = _this$props2.onBlur,\n onKeyDown = _this$props2.onKeyDown,\n onKeyPress = _this$props2.onKeyPress,\n onKeyUp = _this$props2.onKeyUp,\n autoFocus = _this$props2.autoFocus,\n value = _this$props2.value,\n required = _this$props2.required,\n others = _objectWithoutProperties(_this$props2, [\"prefixCls\", \"className\", \"style\", \"name\", \"id\", \"type\", \"disabled\", \"readOnly\", \"tabIndex\", \"onClick\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onKeyPress\", \"onKeyUp\", \"autoFocus\", \"value\", \"required\"]);\n\n var globalProps = Object.keys(others).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = others[key];\n }\n\n return prev;\n }, {});\n var checked = this.state.checked;\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classString,\n style: style\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n name: name,\n id: id,\n type: type,\n required: required,\n readOnly: readOnly,\n disabled: disabled,\n tabIndex: tabIndex,\n className: \"\".concat(prefixCls, \"-input\"),\n checked: !!checked,\n onClick: onClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyUp: onKeyUp,\n onKeyDown: onKeyDown,\n onKeyPress: onKeyPress,\n onChange: this.handleChange,\n autoFocus: autoFocus,\n ref: this.saveInput,\n value: value\n }, globalProps)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if ('checked' in props) {\n return _objectSpread(_objectSpread({}, state), {}, {\n checked: props.checked\n });\n }\n\n return null;\n }\n }]);\n\n return Checkbox;\n}(Component);\n\nCheckbox.defaultProps = {\n prefixCls: 'rc-checkbox',\n className: '',\n style: {},\n type: 'checkbox',\n defaultChecked: false,\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {},\n onKeyPress: function onKeyPress() {},\n onKeyUp: function onKeyUp() {}\n};\nexport default Checkbox;","import { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusOutline, resetComponent } from '../../style';\n// ============================== Motion ==============================\nconst antCheckboxEffect = new Keyframes('antCheckboxEffect', {\n '0%': {\n transform: 'scale(1)',\n opacity: 0.5\n },\n '100%': {\n transform: 'scale(1.6)',\n opacity: 0\n }\n});\n// ============================== Styles ==============================\nexport const genCheckboxStyle = token => {\n const {\n checkboxCls\n } = token;\n const wrapperCls = `${checkboxCls}-wrapper`;\n return [\n // ===================== Basic =====================\n {\n // Group\n [`${checkboxCls}-group`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex'\n }),\n // Wrapper\n [wrapperCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n alignItems: 'baseline',\n cursor: 'pointer',\n // Fix checkbox & radio in flex align #30260\n '&:after': {\n display: 'inline-block',\n width: 0,\n overflow: 'hidden',\n content: \"'\\\\a0'\"\n },\n // Checkbox near checkbox\n [`& + ${wrapperCls}`]: {\n marginInlineStart: token.marginXS\n },\n [`&${wrapperCls}-in-form-item`]: {\n 'input[type=\"checkbox\"]': {\n width: 14,\n height: 14 // FIXME: magic\n }\n }\n }),\n\n // Wrapper > Checkbox\n [checkboxCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n top: '0.2em',\n position: 'relative',\n whiteSpace: 'nowrap',\n lineHeight: 1,\n cursor: 'pointer',\n // Wrapper > Checkbox > input\n [`${checkboxCls}-input`]: {\n position: 'absolute',\n inset: 0,\n zIndex: 1,\n width: '100%',\n height: '100%',\n cursor: 'pointer',\n opacity: 0,\n [`&:focus-visible + ${checkboxCls}-inner`]: Object.assign({}, genFocusOutline(token))\n },\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n boxSizing: 'border-box',\n position: 'relative',\n top: 0,\n insetInlineStart: 0,\n display: 'block',\n width: token.checkboxSize,\n height: token.checkboxSize,\n direction: 'ltr',\n backgroundColor: token.colorBgContainer,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusSM,\n borderCollapse: 'separate',\n transition: `all ${token.motionDurationSlow}`,\n '&:after': {\n boxSizing: 'border-box',\n position: 'absolute',\n top: '50%',\n insetInlineStart: '21.5%',\n display: 'table',\n width: token.checkboxSize / 14 * 5,\n height: token.checkboxSize / 14 * 8,\n border: `${token.lineWidthBold}px solid ${token.colorWhite}`,\n borderTop: 0,\n borderInlineStart: 0,\n transform: 'rotate(45deg) scale(0) translate(-50%,-50%)',\n opacity: 0,\n content: '\"\"',\n transition: `all ${token.motionDurationFast} ${token.motionEaseInBack}, opacity ${token.motionDurationFast}`\n }\n },\n // Wrapper > Checkbox + Text\n '& + span': {\n paddingInlineStart: token.paddingXS,\n paddingInlineEnd: token.paddingXS\n }\n })\n },\n // ================= Indeterminate =================\n {\n [checkboxCls]: {\n '&-indeterminate': {\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n '&:after': {\n top: '50%',\n insetInlineStart: '50%',\n width: token.fontSizeLG / 2,\n height: token.fontSizeLG / 2,\n backgroundColor: token.colorPrimary,\n border: 0,\n transform: 'translate(-50%, -50%) scale(1)',\n opacity: 1,\n content: '\"\"'\n }\n }\n }\n }\n },\n // ===================== Hover =====================\n {\n // Wrapper\n [`${wrapperCls}:hover ${checkboxCls}:after`]: {\n visibility: 'visible'\n },\n // Wrapper & Wrapper > Checkbox\n [`\n ${wrapperCls}:not(${wrapperCls}-disabled),\n ${checkboxCls}:not(${checkboxCls}-disabled)\n `]: {\n [`&:hover ${checkboxCls}-inner`]: {\n borderColor: token.colorPrimary\n }\n },\n [`${wrapperCls}:not(${wrapperCls}-disabled)`]: {\n [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled) ${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimaryHover,\n borderColor: 'transparent'\n },\n [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled):after`]: {\n borderColor: token.colorPrimaryHover\n }\n }\n },\n // ==================== Checked ====================\n {\n // Wrapper > Checkbox\n [`${checkboxCls}-checked`]: {\n [`${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimary,\n borderColor: token.colorPrimary,\n '&:after': {\n opacity: 1,\n transform: 'rotate(45deg) scale(1) translate(-50%,-50%)',\n transition: `all ${token.motionDurationMid} ${token.motionEaseOutBack} ${token.motionDurationFast}`\n }\n },\n // Checked Effect\n '&:after': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n borderRadius: token.borderRadiusSM,\n visibility: 'hidden',\n border: `${token.lineWidthBold}px solid ${token.colorPrimary}`,\n animationName: antCheckboxEffect,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: 'ease-in-out',\n animationFillMode: 'backwards',\n content: '\"\"',\n transition: `all ${token.motionDurationSlow}`\n }\n },\n [`\n ${wrapperCls}-checked:not(${wrapperCls}-disabled),\n ${checkboxCls}-checked:not(${checkboxCls}-disabled)\n `]: {\n [`&:hover ${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimaryHover,\n borderColor: 'transparent'\n },\n [`&:hover ${checkboxCls}:after`]: {\n borderColor: token.colorPrimaryHover\n }\n }\n },\n // ==================== Disable ====================\n {\n // Wrapper\n [`${wrapperCls}-disabled`]: {\n cursor: 'not-allowed'\n },\n // Wrapper > Checkbox\n [`${checkboxCls}-disabled`]: {\n // Wrapper > Checkbox > input\n [`&, ${checkboxCls}-input`]: {\n cursor: 'not-allowed',\n // Disabled for native input to enable Tooltip event handler\n // ref: https://github.com/ant-design/ant-design/issues/39822#issuecomment-1365075901\n pointerEvents: 'none'\n },\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n background: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n '&:after': {\n borderColor: token.colorTextDisabled\n }\n },\n '&:after': {\n display: 'none'\n },\n '& + span': {\n color: token.colorTextDisabled\n },\n [`&${checkboxCls}-indeterminate ${checkboxCls}-inner::after`]: {\n background: token.colorTextDisabled\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport function getStyle(prefixCls, token) {\n const checkboxToken = mergeToken(token, {\n checkboxCls: `.${prefixCls}`,\n checkboxSize: token.controlInteractiveSize\n });\n return [genCheckboxStyle(checkboxToken)];\n}\nexport default genComponentStyleHook('Checkbox', (token, _ref) => {\n let {\n prefixCls\n } = _ref;\n return [getStyle(prefixCls, token)];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Checkbox from './Checkbox';\nimport useStyle from './style';\nexport const GroupContext = /*#__PURE__*/React.createContext(null);\nconst InternalCheckboxGroup = (_a, ref) => {\n var {\n defaultValue,\n children,\n options = [],\n prefixCls: customizePrefixCls,\n className,\n style,\n onChange\n } = _a,\n restProps = __rest(_a, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"style\", \"onChange\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [value, setValue] = React.useState(restProps.value || defaultValue || []);\n const [registeredValues, setRegisteredValues] = React.useState([]);\n React.useEffect(() => {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n const getOptions = () => options.map(option => {\n if (typeof option === 'string' || typeof option === 'number') {\n return {\n label: option,\n value: option\n };\n }\n return option;\n });\n const cancelValue = val => {\n setRegisteredValues(prevValues => prevValues.filter(v => v !== val));\n };\n const registerValue = val => {\n setRegisteredValues(prevValues => [].concat(_toConsumableArray(prevValues), [val]));\n };\n const toggleOption = option => {\n const optionIndex = value.indexOf(option.value);\n const newValue = _toConsumableArray(value);\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n const opts = getOptions();\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(val => registeredValues.includes(val)).sort((a, b) => {\n const indexA = opts.findIndex(opt => opt.value === a);\n const indexB = opts.findIndex(opt => opt.value === b);\n return indexA - indexB;\n }));\n };\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const domProps = omit(restProps, ['value', 'disabled']);\n if (options && options.length > 0) {\n children = getOptions().map(option => /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.includes(option.value),\n onChange: option.onChange,\n className: `${groupPrefixCls}-item`,\n style: option.style\n }, option.label));\n }\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n const context = {\n toggleOption,\n value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue,\n cancelValue\n };\n const classString = classNames(groupPrefixCls, {\n [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, children)));\n};\nconst CheckboxGroup = /*#__PURE__*/React.forwardRef(InternalCheckboxGroup);\nexport default /*#__PURE__*/React.memo(CheckboxGroup);","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport { GroupContext } from './Group';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useStyle from './style';\nconst InternalCheckbox = (_a, ref) => {\n var _b;\n var {\n prefixCls: customizePrefixCls,\n className,\n children,\n indeterminate = false,\n style,\n onMouseEnter,\n onMouseLeave,\n skipGroup = false,\n disabled\n } = _a,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const checkboxGroup = React.useContext(GroupContext);\n const {\n isFormItemInput\n } = React.useContext(FormItemInputContext);\n const contextDisabled = React.useContext(DisabledContext);\n const mergedDisabled = (_b = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _b !== void 0 ? _b : contextDisabled;\n const prevValue = React.useRef(restProps.value);\n React.useEffect(() => {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n }, []);\n React.useEffect(() => {\n if (skipGroup) {\n return;\n }\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n prevValue.current = restProps.value;\n }\n return () => checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n }, [restProps.value]);\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const checkboxProps = Object.assign({}, restProps);\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n }\n const classString = classNames({\n [`${prefixCls}-wrapper`]: true,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-checked`]: checkboxProps.checked,\n [`${prefixCls}-wrapper-disabled`]: mergedDisabled,\n [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput\n }, className, hashId);\n const checkboxClass = classNames({\n [`${prefixCls}-indeterminate`]: indeterminate\n }, hashId);\n const ariaChecked = indeterminate ? 'mixed' : undefined;\n return wrapSSR(\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({\n \"aria-checked\": ariaChecked\n }, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n disabled: mergedDisabled,\n ref: ref\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children)));\n};\nconst Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import InternalCheckbox from './Checkbox';\nimport Group from './Group';\nconst Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import * as React from 'react';\nconst RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport const RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport const RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusOutline, resetComponent } from '../../style';\n// ============================== Styles ==============================\nconst antRadioEffect = new Keyframes('antRadioEffect', {\n '0%': {\n transform: 'scale(1)',\n opacity: 0.5\n },\n '100%': {\n transform: 'scale(1.6)',\n opacity: 0\n }\n});\n// styles from RadioGroup only\nconst getGroupRadioStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n return {\n [groupPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n fontSize: 0,\n // RTL\n [`&${groupPrefixCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${antCls}-badge ${antCls}-badge-count`]: {\n zIndex: 1\n },\n [`> ${antCls}-badge:not(:first-child) > ${antCls}-button-wrapper`]: {\n borderInlineStart: 'none'\n }\n })\n };\n};\n// Styles from radio-wrapper\nconst getRadioBasicStyle = token => {\n const {\n componentCls,\n radioWrapperMarginRight,\n radioCheckedColor,\n radioSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n motionEaseInOutCirc,\n radioButtonBg,\n colorBorder,\n lineWidth,\n radioDotSize,\n colorBgContainerDisabled,\n colorTextDisabled,\n paddingXS,\n radioDotDisabledColor,\n lineType,\n radioDotDisabledSize,\n wireframe,\n colorWhite\n } = token;\n const radioInnerPrefixCls = `${componentCls}-inner`;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'baseline',\n marginInlineStart: 0,\n marginInlineEnd: radioWrapperMarginRight,\n cursor: 'pointer',\n // RTL\n [`&${componentCls}-wrapper-rtl`]: {\n direction: 'rtl'\n },\n '&-disabled': {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n },\n '&::after': {\n display: 'inline-block',\n width: 0,\n overflow: 'hidden',\n content: '\"\\\\a0\"'\n },\n // hashId 在 wrapper 上,只能铺平\n [`${componentCls}-checked::after`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n border: `${lineWidth}px ${lineType} ${radioCheckedColor}`,\n borderRadius: '50%',\n visibility: 'hidden',\n animationName: antRadioEffect,\n animationDuration: motionDurationSlow,\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n content: '\"\"'\n },\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n outline: 'none',\n cursor: 'pointer',\n alignSelf: 'center'\n }),\n [`${componentCls}-wrapper:hover &,\n &:hover ${radioInnerPrefixCls}`]: {\n borderColor: radioCheckedColor\n },\n [`${componentCls}-input:focus-visible + ${radioInnerPrefixCls}`]: Object.assign({}, genFocusOutline(token)),\n [`${componentCls}:hover::after, ${componentCls}-wrapper:hover &::after`]: {\n visibility: 'visible'\n },\n [`${componentCls}-inner`]: {\n '&::after': {\n boxSizing: 'border-box',\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: '50%',\n display: 'block',\n width: radioSize,\n height: radioSize,\n marginBlockStart: radioSize / -2,\n marginInlineStart: radioSize / -2,\n backgroundColor: wireframe ? radioCheckedColor : colorWhite,\n borderBlockStart: 0,\n borderInlineStart: 0,\n borderRadius: radioSize,\n transform: 'scale(0)',\n opacity: 0,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`,\n content: '\"\"'\n },\n boxSizing: 'border-box',\n position: 'relative',\n insetBlockStart: 0,\n insetInlineStart: 0,\n display: 'block',\n width: radioSize,\n height: radioSize,\n backgroundColor: radioButtonBg,\n borderColor: colorBorder,\n borderStyle: 'solid',\n borderWidth: lineWidth,\n borderRadius: '50%',\n transition: `all ${motionDurationMid}`\n },\n [`${componentCls}-input`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineEnd: 0,\n insetBlockEnd: 0,\n insetInlineStart: 0,\n zIndex: 1,\n cursor: 'pointer',\n opacity: 0\n },\n // 选中状态\n [`${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n borderColor: radioCheckedColor,\n backgroundColor: wireframe ? radioButtonBg : radioCheckedColor,\n '&::after': {\n transform: `scale(${radioDotSize / radioSize})`,\n opacity: 1,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`\n }\n }\n },\n [`${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [radioInnerPrefixCls]: {\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&::after': {\n backgroundColor: radioDotDisabledColor\n }\n },\n [`${componentCls}-input`]: {\n cursor: 'not-allowed'\n },\n [`${componentCls}-disabled + span`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n '&::after': {\n transform: `scale(${radioDotDisabledSize / radioSize})`\n }\n }\n }\n },\n [`span${componentCls} + *`]: {\n paddingInlineStart: paddingXS,\n paddingInlineEnd: paddingXS\n }\n })\n };\n};\n// Styles from radio-button\nconst getRadioButtonStyle = token => {\n const {\n radioButtonColor,\n controlHeight,\n componentCls,\n lineWidth,\n lineType,\n colorBorder,\n motionDurationSlow,\n motionDurationMid,\n radioButtonPaddingHorizontal,\n fontSize,\n radioButtonBg,\n fontSizeLG,\n controlHeightLG,\n controlHeightSM,\n paddingXS,\n borderRadius,\n borderRadiusSM,\n borderRadiusLG,\n radioCheckedColor,\n radioButtonCheckedBg,\n radioButtonHoverColor,\n radioButtonActiveColor,\n radioSolidCheckedColor,\n colorTextDisabled,\n colorBgContainerDisabled,\n radioDisabledButtonCheckedColor,\n radioDisabledButtonCheckedBg\n } = token;\n return {\n [`${componentCls}-button-wrapper`]: {\n position: 'relative',\n display: 'inline-block',\n height: controlHeight,\n margin: 0,\n paddingInline: radioButtonPaddingHorizontal,\n paddingBlock: 0,\n color: radioButtonColor,\n fontSize,\n lineHeight: `${controlHeight - lineWidth * 2}px`,\n background: radioButtonBg,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n // strange align fix for chrome but works\n // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif\n borderBlockStartWidth: lineWidth + 0.02,\n borderInlineStartWidth: 0,\n borderInlineEndWidth: lineWidth,\n cursor: 'pointer',\n transition: [`color ${motionDurationMid}`, `background ${motionDurationMid}`, `border-color ${motionDurationMid}`, `box-shadow ${motionDurationMid}`].join(','),\n a: {\n color: radioButtonColor\n },\n [`> ${componentCls}-button`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n zIndex: -1,\n width: '100%',\n height: '100%'\n },\n '&:not(:first-child)': {\n '&::before': {\n position: 'absolute',\n insetBlockStart: -lineWidth,\n insetInlineStart: -lineWidth,\n display: 'block',\n boxSizing: 'content-box',\n width: 1,\n height: '100%',\n paddingBlock: lineWidth,\n paddingInline: 0,\n backgroundColor: colorBorder,\n transition: `background-color ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n '&:first-child': {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderStartStartRadius: borderRadius,\n borderEndStartRadius: borderRadius\n },\n '&:last-child': {\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius\n },\n '&:first-child:last-child': {\n borderRadius\n },\n [`${componentCls}-group-large &`]: {\n height: controlHeightLG,\n fontSize: fontSizeLG,\n lineHeight: `${controlHeightLG - lineWidth * 2}px`,\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderEndStartRadius: borderRadiusLG\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n }\n },\n [`${componentCls}-group-small &`]: {\n height: controlHeightSM,\n paddingInline: paddingXS - lineWidth,\n paddingBlock: 0,\n lineHeight: `${controlHeightSM - lineWidth * 2}px`,\n '&:first-child': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n '&:hover': {\n position: 'relative',\n color: radioCheckedColor\n },\n '&:has(:focus-visible)': Object.assign({}, genFocusOutline(token)),\n [`${componentCls}-inner, input[type='checkbox'], input[type='radio']`]: {\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n },\n [`&-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n zIndex: 1,\n color: radioCheckedColor,\n background: radioButtonCheckedBg,\n borderColor: radioCheckedColor,\n '&::before': {\n backgroundColor: radioCheckedColor\n },\n '&:first-child': {\n borderColor: radioCheckedColor\n },\n '&:hover': {\n color: radioButtonHoverColor,\n borderColor: radioButtonHoverColor,\n '&::before': {\n backgroundColor: radioButtonHoverColor\n }\n },\n '&:active': {\n color: radioButtonActiveColor,\n borderColor: radioButtonActiveColor,\n '&::before': {\n backgroundColor: radioButtonActiveColor\n }\n }\n },\n [`${componentCls}-group-solid &-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n color: radioSolidCheckedColor,\n background: radioCheckedColor,\n borderColor: radioCheckedColor,\n '&:hover': {\n color: radioSolidCheckedColor,\n background: radioButtonHoverColor,\n borderColor: radioButtonHoverColor\n },\n '&:active': {\n color: radioSolidCheckedColor,\n background: radioButtonActiveColor,\n borderColor: radioButtonActiveColor\n }\n },\n '&-disabled': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&:first-child, &:hover': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder\n }\n },\n [`&-disabled${componentCls}-button-wrapper-checked`]: {\n color: radioDisabledButtonCheckedColor,\n backgroundColor: radioDisabledButtonCheckedBg,\n borderColor: colorBorder,\n boxShadow: 'none'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Radio', token => {\n const {\n padding,\n lineWidth,\n controlItemBgActiveDisabled,\n colorTextDisabled,\n colorBgContainer,\n fontSizeLG,\n controlOutline,\n colorPrimaryHover,\n colorPrimaryActive,\n colorText,\n colorPrimary,\n marginXS,\n controlOutlineWidth,\n colorTextLightSolid,\n wireframe\n } = token;\n // Radio\n const radioFocusShadow = `0 0 0 ${controlOutlineWidth}px ${controlOutline}`;\n const radioButtonFocusShadow = radioFocusShadow;\n const radioSize = fontSizeLG;\n const dotPadding = 4; // Fixed value\n const radioDotDisabledSize = radioSize - dotPadding * 2;\n const radioDotSize = wireframe ? radioDotDisabledSize : radioSize - (dotPadding + lineWidth) * 2;\n const radioCheckedColor = colorPrimary;\n // Radio buttons\n const radioButtonColor = colorText;\n const radioButtonHoverColor = colorPrimaryHover;\n const radioButtonActiveColor = colorPrimaryActive;\n const radioButtonPaddingHorizontal = padding - lineWidth;\n const radioDisabledButtonCheckedColor = colorTextDisabled;\n const radioWrapperMarginRight = marginXS;\n const radioToken = mergeToken(token, {\n radioFocusShadow,\n radioButtonFocusShadow,\n radioSize,\n radioDotSize,\n radioDotDisabledSize,\n radioCheckedColor,\n radioDotDisabledColor: colorTextDisabled,\n radioSolidCheckedColor: colorTextLightSolid,\n radioButtonBg: colorBgContainer,\n radioButtonCheckedBg: colorBgContainer,\n radioButtonColor,\n radioButtonHoverColor,\n radioButtonActiveColor,\n radioButtonPaddingHorizontal,\n radioDisabledButtonCheckedBg: controlItemBgActiveDisabled,\n radioDisabledButtonCheckedColor,\n radioWrapperMarginRight\n });\n return [getGroupRadioStyle(radioToken), getRadioBasicStyle(radioToken), getRadioButtonStyle(radioToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nimport useStyle from './style';\nconst InternalRadio = (props, ref) => {\n const groupContext = React.useContext(RadioGroupContext);\n const radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const innerRef = React.useRef();\n const mergedRef = composeRef(ref, innerRef);\n const {\n isFormItemInput\n } = React.useContext(FormItemInputContext);\n process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'Radio', '`optionType` is only support in Radio.Group.') : void 0;\n const onChange = e => {\n var _a, _b;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n };\n const {\n prefixCls: customizePrefixCls,\n className,\n children,\n style,\n disabled: customDisabled\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"style\", \"disabled\"]);\n const radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n const prefixCls = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button' ? `${radioPrefixCls}-button` : radioPrefixCls;\n // Style\n const [wrapSSR, hashId] = useStyle(radioPrefixCls);\n const radioProps = Object.assign({}, restProps);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n radioProps.disabled = customDisabled || disabled;\n if (groupContext) {\n radioProps.name = groupContext.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === groupContext.value;\n radioProps.disabled = radioProps.disabled || groupContext.disabled;\n }\n const wrapperClassString = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-wrapper-checked`]: radioProps.checked,\n [`${prefixCls}-wrapper-disabled`]: radioProps.disabled,\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput\n }, className, hashId);\n return wrapSSR(\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: wrapperClassString,\n style: style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({}, radioProps, {\n type: \"radio\",\n prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null));\n};\nconst Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n Radio.displayName = 'Radio';\n}\nexport default Radio;","import classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nimport useStyle from './style';\nconst RadioGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const size = React.useContext(SizeContext);\n const [value, setValue] = useMergedState(props.defaultValue, {\n value: props.value\n });\n const onRadioChange = ev => {\n const lastValue = value;\n const val = ev.target.value;\n if (!('value' in props)) {\n setValue(val);\n }\n const {\n onChange\n } = props;\n if (onChange && val !== lastValue) {\n onChange(ev);\n }\n };\n const {\n prefixCls: customizePrefixCls,\n className = '',\n options,\n buttonStyle = 'outline',\n disabled,\n children,\n size: customizeSize,\n style,\n id,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur\n } = props;\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let childrenToRender = children;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n childrenToRender = options.map(option => {\n if (typeof option === 'string' || typeof option === 'number') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option.toString(),\n prefixCls: prefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n }\n // 此处类型自动推导为 { label: string value: string }\n return /*#__PURE__*/React.createElement(Radio, {\n key: `radio-group-value-options-${option.value}`,\n prefixCls: prefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n style: option.style\n }, option.label);\n });\n }\n const mergedSize = customizeSize || size;\n const classString = classNames(groupPrefixCls, `${groupPrefixCls}-${buttonStyle}`, {\n [`${groupPrefixCls}-${mergedSize}`]: mergedSize,\n [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, getDataOrAriaProps(props), {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onFocus,\n onBlur: onBlur,\n id: id,\n ref: ref\n }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: {\n onChange: onRadioChange,\n value,\n disabled: props.disabled,\n name: props.name,\n optionType: props.optionType\n }\n }, childrenToRender)));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","export default function getDataOrAriaProps(props) {\n return Object.keys(props).reduce((prev, key) => {\n if ((key.startsWith('data-') || key.startsWith('aria-') || key === 'role') && !key.startsWith('data-__')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nconst RadioButton = (props, ref) => {\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls\n } = props,\n radioProps = __rest(props, [\"prefixCls\"]);\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n value: \"button\"\n }, /*#__PURE__*/React.createElement(Radio, Object.assign({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","import Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nconst Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport omit from \"rc-util/es/omit\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { getPosition, isTreeNode } from '../util';\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n // Add FlattenDataNode into list\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\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: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\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 && node.type && node.type.isTreeNode;\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = keyEntities[dragNodeKey];\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = keyEntities[prevNodeKey];\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n // Only allow cross level drop when dragging on a non-expanded node\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n var keyProps;\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 }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n e.preventDefault();\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n e.preventDefault();\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = keyEntities[eventKey] || {},\n children = _ref.children;\n return !!(children || []).length;\n };\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n };\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\n if (!checkable) return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: 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 _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n title = _this$props6.title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: indent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = keyEntities[eventKey] || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.defaultProps = {\n title: defaultTitle\n};\nContextTreeNode.isTreeNode = 1;\nexport { InternalTreeNode };\nexport default ContextTreeNode;","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TreeNode from './TreeNode';\nimport { getTreeNodeProps } from './utils/treeUtil';\nimport { TreeContext } from './contextTypes';\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n var motionedRef = React.useRef(false);\n var onMotionEnd = function onMotionEnd() {\n if (!motionedRef.current) {\n onOriginMotionEnd();\n }\n motionedRef.current = true;\n };\n useEffect(function () {\n if (motionNodes && motionType === 'hide' && visible) {\n setVisible(false);\n }\n }, [motionNodes]);\n useEffect(function () {\n // Trigger motion only when patched\n if (motionNodes) {\n onOriginMotionStart();\n }\n return function () {\n if (motionNodes) {\n onMotionEnd();\n }\n };\n }, []);\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onAppearEnd: onMotionEnd,\n onLeaveEnd: onMotionEnd\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\nimport * as React from 'react';\nimport VirtualList from 'rc-virtual-list';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getTreeNodeProps, getKey } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n React.useEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n });\n // Motion node is not render. Skip motion\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import warning from \"rc-util/es/warning\";\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!keyEntities[key];\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport classNames from 'classnames';\nimport { TreeContext } from './contextTypes';\nimport { getDragChildrenKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr } from './util';\nimport { flattenTreeData, convertTreeToData, convertDataToEntities, warningWithoutKey, convertNodePropsToEventData, getTreeNodeProps, fillFieldNames } from './utils/treeUtil';\nimport NodeList, { MOTION_KEY, MotionEntity } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { conductCheck } from './utils/conductUtil';\nimport DropIndicator from './DropIndicator';\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(_args));\n _this.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = keyEntities[node.props.eventKey];\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n };\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDragEnd = function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: _this.state.keyEntities[dropTargetKey].node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);\n }\n _this.dragNode = null;\n };\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n _this.triggerExpandActionExpand = function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n };\n _this.onNodeClick = function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);\n };\n _this.onNodeDoubleClick = function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);\n };\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = keyEntities[selectedKey];\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 onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n };\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return keyEntities[checkedKey];\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 // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = keyEntities[checkedKey];\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 _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);\n };\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.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 _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n };\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n event: event,\n node: node\n });\n };\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n event: event,\n node: node\n });\n };\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);\n };\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);\n };\n _this.getTreeNodeRequiredProps = function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);\n };\n _this.getActiveItem = function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n _this.offsetActiveKey = function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var key = item.key;\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n _this.onKeyDown = function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props9 = _this.props,\n onKeyDown = _this$props9.onKeyDown,\n checkable = _this$props9.checkable,\n selectable = _this$props9.selectable;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var activeKey = this.props.activeKey;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props10 = this.props,\n prefixCls = _this$props10.prefixCls,\n className = _this$props10.className,\n style = _this$props10.style,\n showLine = _this$props10.showLine,\n focusable = _this$props10.focusable,\n _this$props10$tabInde = _this$props10.tabIndex,\n tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,\n selectable = _this$props10.selectable,\n showIcon = _this$props10.showIcon,\n icon = _this$props10.icon,\n switcherIcon = _this$props10.switcherIcon,\n draggable = _this$props10.draggable,\n checkable = _this$props10.checkable,\n checkStrictly = _this$props10.checkStrictly,\n disabled = _this$props10.disabled,\n motion = _this$props10.motion,\n loadData = _this$props10.loadData,\n filterTreeNode = _this$props10.filterTreeNode,\n height = _this$props10.height,\n itemHeight = _this$props10.itemHeight,\n virtual = _this$props10.virtual,\n titleRender = _this$props10.titleRender,\n dropIndicatorRender = _this$props10.dropIndicatorRender,\n onContextMenu = _this$props10.onContextMenu,\n onScroll = _this$props10.onScroll,\n direction = _this$props10.direction,\n rootClassName = _this$props10.rootClassName,\n rootStyle = _this$props10.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n // ================== Tree Node ==================\n var treeData;\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\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 var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\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 }\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\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 if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\nTree.defaultProps = {\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 dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\n}","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nexport { TreeNode };\nexport default Tree;","// This icon file is generated automatically.\nvar HolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\" } }] }, \"name\": \"holder\", \"theme\": \"outlined\" };\nexport default HolderOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar HolderOutlined = function HolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: HolderOutlinedSvg\n }));\n};\nHolderOutlined.displayName = 'HolderOutlined';\nexport default /*#__PURE__*/React.forwardRef(HolderOutlined);","import React from 'react';\nexport const offset = 4;\nexport default function dropIndicatorRender(props) {\n const {\n dropPosition,\n dropLevelOffset,\n prefixCls,\n indent,\n direction = 'ltr'\n } = props;\n const startPosition = direction === 'ltr' ? 'left' : 'right';\n const endPosition = direction === 'ltr' ? 'right' : 'left';\n const style = {\n [startPosition]: -dropLevelOffset * indent + offset,\n [endPosition]: 0\n };\n switch (dropPosition) {\n case -1:\n style.top = -3;\n break;\n case 1:\n style.bottom = -3;\n break;\n default:\n // dropPosition === 0\n style.bottom = -3;\n style[startPosition] = indent + offset;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: `${prefixCls}-drop-indicator`\n });\n}","// This icon file is generated automatically.\nvar CaretDownFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"filled\" };\nexport default CaretDownFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretDownFilledSvg\n }));\n};\nCaretDownFilled.displayName = 'CaretDownFilled';\nexport default /*#__PURE__*/React.forwardRef(CaretDownFilled);","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar FileOutlined = function FileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FileOutlinedSvg\n }));\n};\nFileOutlined.displayName = 'FileOutlined';\nexport default /*#__PURE__*/React.forwardRef(FileOutlined);","// This icon file is generated automatically.\nvar MinusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"minus-square\", \"theme\": \"outlined\" };\nexport default MinusSquareOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MinusSquareOutlinedSvg\n }));\n};\nMinusSquareOutlined.displayName = 'MinusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(MinusSquareOutlined);","// This icon file is generated automatically.\nvar PlusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"plus-square\", \"theme\": \"outlined\" };\nexport default PlusSquareOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusSquareOutlinedSvg\n }));\n};\nPlusSquareOutlined.displayName = 'PlusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusSquareOutlined);","import CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nexport default function renderSwitcherIcon(prefixCls, switcherIcon, treeNodeProps, showLine) {\n const {\n isLeaf,\n expanded,\n loading\n } = treeNodeProps;\n if (loading) {\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-switcher-loading-icon`\n });\n }\n let showLeafIcon;\n if (showLine && typeof showLine === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (!showLine) {\n return null;\n }\n if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n const leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n const leafCls = `${prefixCls}-switcher-line-custom-icon`;\n if (isValidElement(leafIcon)) {\n return cloneElement(leafIcon, {\n className: classNames(leafIcon.props.className || '', leafCls)\n });\n }\n return leafIcon;\n }\n return showLeafIcon ? /*#__PURE__*/React.createElement(FileOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-switcher-leaf-line`\n });\n }\n const switcherCls = `${prefixCls}-switcher-icon`;\n const switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n if (isValidElement(switcher)) {\n return cloneElement(switcher, {\n className: classNames(switcher.props.className || '', switcherCls)\n });\n }\n if (switcher) {\n return switcher;\n }\n if (showLine) {\n return expanded ? /*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n }) : /*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n });\n }\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n}","import { Keyframes } from '@ant-design/cssinjs';\nimport { genCollapseMotion } from '../../style/motion';\nimport { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusOutline, resetComponent } from '../../style';\n// ============================ Keyframes =============================\nconst treeNodeFX = new Keyframes('ant-tree-node-fx-do-not-use', {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n});\n// ============================== Switch ==============================\nconst getSwitchStyle = (prefixCls, token) => ({\n [`.${prefixCls}-switcher-icon`]: {\n display: 'inline-block',\n fontSize: 10,\n verticalAlign: 'baseline',\n svg: {\n transition: `transform ${token.motionDurationSlow}`\n }\n }\n});\n// =============================== Drop ===============================\nconst getDropIndicatorStyle = (prefixCls, token) => ({\n [`.${prefixCls}-drop-indicator`]: {\n position: 'absolute',\n // it should displayed over the following node\n zIndex: 1,\n height: 2,\n backgroundColor: token.colorPrimary,\n borderRadius: 1,\n pointerEvents: 'none',\n '&:after': {\n position: 'absolute',\n top: -3,\n insetInlineStart: -6,\n width: 8,\n height: 8,\n backgroundColor: 'transparent',\n border: `${token.lineWidthBold}px solid ${token.colorPrimary}`,\n borderRadius: '50%',\n content: '\"\"'\n }\n }\n});\nexport const genBaseStyle = (prefixCls, token) => {\n const {\n treeCls,\n treeNodeCls,\n treeNodePadding,\n treeTitleHeight\n } = token;\n const treeCheckBoxMarginVertical = (treeTitleHeight - token.fontSizeLG) / 2;\n const treeCheckBoxMarginHorizontal = token.paddingXS;\n return {\n [treeCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n background: token.colorBgContainer,\n borderRadius: token.borderRadius,\n transition: `background-color ${token.motionDurationSlow}`,\n [`&${treeCls}-rtl`]: {\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n '&_close': {\n [`${treeCls}-switcher-icon`]: {\n svg: {\n transform: 'rotate(90deg)'\n }\n }\n }\n }\n },\n [`&-focused:not(:hover):not(${treeCls}-active-focused)`]: Object.assign({}, genFocusOutline(token)),\n // =================== Virtual List ===================\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'flex-start'\n },\n [`&${treeCls}-block-node`]: {\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'stretch',\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n flex: 'auto'\n },\n // >>> Drag\n [`${treeNodeCls}.dragging`]: {\n position: 'relative',\n '&:after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: treeNodePadding,\n insetInlineStart: 0,\n border: `1px solid ${token.colorPrimary}`,\n opacity: 0,\n animationName: treeNodeFX,\n animationDuration: token.motionDurationSlow,\n animationPlayState: 'running',\n animationFillMode: 'forwards',\n content: '\"\"',\n pointerEvents: 'none'\n }\n }\n }\n },\n // ===================== TreeNode =====================\n [`${treeNodeCls}`]: {\n display: 'flex',\n alignItems: 'flex-start',\n padding: `0 0 ${treeNodePadding}px 0`,\n outline: 'none',\n '&-rtl': {\n direction: 'rtl'\n },\n // Disabled\n '&-disabled': {\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n background: 'transparent'\n }\n }\n },\n [`&-active ${treeCls}-node-content-wrapper`]: Object.assign({}, genFocusOutline(token)),\n [`&:not(${treeNodeCls}-disabled).filter-node ${treeCls}-title`]: {\n color: 'inherit',\n fontWeight: 500\n },\n '&-draggable': {\n [`${treeCls}-draggable-icon`]: {\n width: treeTitleHeight,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n visibility: 'visible',\n opacity: 0.2,\n transition: `opacity ${token.motionDurationSlow}`,\n [`${treeNodeCls}:hover &`]: {\n opacity: 0.45\n }\n },\n [`&${treeNodeCls}-disabled`]: {\n [`${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n }\n }\n }\n },\n // >>> Indent\n [`${treeCls}-indent`]: {\n alignSelf: 'stretch',\n whiteSpace: 'nowrap',\n userSelect: 'none',\n '&-unit': {\n display: 'inline-block',\n width: treeTitleHeight\n }\n },\n // >>> Drag Handler\n [`${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: Object.assign(Object.assign({}, getSwitchStyle(prefixCls, token)), {\n position: 'relative',\n flex: 'none',\n alignSelf: 'stretch',\n width: treeTitleHeight,\n margin: 0,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n '&-noop': {\n cursor: 'default'\n },\n '&_close': {\n [`${treeCls}-switcher-icon`]: {\n svg: {\n transform: 'rotate(-90deg)'\n }\n }\n },\n '&-loading-icon': {\n color: token.colorPrimary\n },\n '&-leaf-line': {\n position: 'relative',\n zIndex: 1,\n display: 'inline-block',\n width: '100%',\n height: '100%',\n // https://github.com/ant-design/ant-design/issues/31884\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: treeTitleHeight / 2,\n bottom: -treeNodePadding,\n marginInlineStart: -1,\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&:after': {\n position: 'absolute',\n width: treeTitleHeight / 2 * 0.8,\n height: treeTitleHeight / 2,\n borderBottom: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n }\n }\n }),\n // >>> Checkbox\n [`${treeCls}-checkbox`]: {\n top: 'initial',\n marginInlineEnd: treeCheckBoxMarginHorizontal,\n marginBlockStart: treeCheckBoxMarginVertical\n },\n // >>> Title\n // add `${treeCls}-checkbox + span` to cover checkbox `${checkboxCls} + span`\n [`${treeCls}-node-content-wrapper, ${treeCls}-checkbox + span`]: {\n position: 'relative',\n zIndex: 'auto',\n minHeight: treeTitleHeight,\n margin: 0,\n padding: `0 ${token.paddingXS / 2}px`,\n color: 'inherit',\n lineHeight: `${treeTitleHeight}px`,\n background: 'transparent',\n borderRadius: token.borderRadius,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,\n '&:hover': {\n backgroundColor: token.controlItemBgHover\n },\n [`&${treeCls}-node-selected`]: {\n backgroundColor: token.controlItemBgActive\n },\n // Icon\n [`${treeCls}-iconEle`]: {\n display: 'inline-block',\n width: treeTitleHeight,\n height: treeTitleHeight,\n lineHeight: `${treeTitleHeight}px`,\n textAlign: 'center',\n verticalAlign: 'top',\n '&:empty': {\n display: 'none'\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/28217\n [`${treeCls}-unselectable ${treeCls}-node-content-wrapper:hover`]: {\n backgroundColor: 'transparent'\n },\n // ==================== Draggable =====================\n [`${treeCls}-node-content-wrapper`]: Object.assign({\n lineHeight: `${treeTitleHeight}px`,\n userSelect: 'none'\n }, getDropIndicatorStyle(prefixCls, token)),\n [`${treeNodeCls}.drop-container`]: {\n '> [draggable]': {\n boxShadow: `0 0 0 2px ${token.colorPrimary}`\n }\n },\n // ==================== Show Line =====================\n '&-show-line': {\n // ================ Indent lines ================\n [`${treeCls}-indent`]: {\n '&-unit': {\n position: 'relative',\n height: '100%',\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: treeTitleHeight / 2,\n bottom: -treeNodePadding,\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&-end': {\n '&:before': {\n display: 'none'\n }\n }\n }\n },\n // ============== Cover Background ==============\n [`${treeCls}-switcher`]: {\n background: 'transparent',\n '&-line-icon': {\n // https://github.com/ant-design/ant-design/issues/32813\n verticalAlign: '-0.15em'\n }\n }\n },\n [`${treeNodeCls}-leaf-last`]: {\n [`${treeCls}-switcher`]: {\n '&-leaf-line': {\n '&:before': {\n top: 'auto !important',\n bottom: 'auto !important',\n height: `${treeTitleHeight / 2}px !important`\n }\n }\n }\n }\n })\n };\n};\n// ============================ Directory =============================\nexport const genDirectoryStyle = token => {\n const {\n treeCls,\n treeNodeCls,\n treeNodePadding\n } = token;\n return {\n [`${treeCls}${treeCls}-directory`]: {\n // ================== TreeNode ==================\n [treeNodeCls]: {\n position: 'relative',\n // Hover color\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: treeNodePadding,\n insetInlineStart: 0,\n transition: `background-color ${token.motionDurationMid}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n '&:hover': {\n '&:before': {\n background: token.controlItemBgHover\n }\n },\n // Elements\n '> *': {\n zIndex: 1\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n transition: `color ${token.motionDurationMid}`\n },\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n borderRadius: 0,\n userSelect: 'none',\n '&:hover': {\n background: 'transparent'\n },\n [`&${treeCls}-node-selected`]: {\n color: token.colorTextLightSolid,\n background: 'transparent'\n }\n },\n // ============= Selected =============\n '&-selected': {\n [`\n &:hover::before,\n &::before\n `]: {\n background: token.colorPrimary\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: {\n color: token.colorTextLightSolid\n },\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n color: token.colorTextLightSolid,\n background: 'transparent'\n }\n }\n }\n }\n };\n};\n// ============================== Merged ==============================\nexport const genTreeStyle = (prefixCls, token) => {\n const treeCls = `.${prefixCls}`;\n const treeNodeCls = `${treeCls}-treenode`;\n const treeNodePadding = token.paddingXS / 2;\n const treeTitleHeight = token.controlHeightSM;\n const treeToken = mergeToken(token, {\n treeCls,\n treeNodeCls,\n treeNodePadding,\n treeTitleHeight\n });\n return [\n // Basic\n genBaseStyle(prefixCls, treeToken),\n // Directory\n genDirectoryStyle(treeToken)];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tree', (token, _ref) => {\n let {\n prefixCls\n } = _ref;\n return [{\n [token.componentCls]: getCheckboxStyle(`${prefixCls}-checkbox`, token)\n }, genTreeStyle(prefixCls, token), genCollapseMotion(token)];\n});","import HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport classNames from 'classnames';\nimport RcTree from 'rc-tree';\nimport React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport initCollapseMotion from '../_util/motion';\nimport dropIndicatorRender from './utils/dropIndicator';\nimport renderSwitcherIcon from './utils/iconUtil';\nimport useStyle from './style';\nconst Tree = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction,\n virtual\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = false,\n showLine,\n switcherIcon,\n blockNode = false,\n children,\n checkable = false,\n selectable = true,\n draggable,\n motion: customMotion\n } = props;\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const motion = customMotion !== null && customMotion !== void 0 ? customMotion : Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false\n });\n const newProps = Object.assign(Object.assign({}, props), {\n checkable,\n selectable,\n showIcon,\n motion,\n blockNode,\n showLine: Boolean(showLine),\n dropIndicatorRender\n });\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const draggableConfig = React.useMemo(() => {\n if (!draggable) {\n return false;\n }\n let mergedDraggable = {};\n switch (typeof draggable) {\n case 'function':\n mergedDraggable.nodeDraggable = draggable;\n break;\n case 'object':\n mergedDraggable = Object.assign({}, draggable);\n break;\n default:\n break;\n // Do nothing\n }\n\n if (mergedDraggable.icon !== false) {\n mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n }\n return mergedDraggable;\n }, [draggable]);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTree, Object.assign({\n itemHeight: 20,\n ref: ref,\n virtual: virtual\n }, newProps, {\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-icon-hide`]: !showIcon,\n [`${prefixCls}-block-node`]: blockNode,\n [`${prefixCls}-unselectable`]: !selectable,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId),\n direction: direction,\n checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-checkbox-inner`\n }) : checkable,\n selectable: selectable,\n switcherIcon: nodeProps => renderSwitcherIcon(prefixCls, switcherIcon, nodeProps, showLine),\n draggable: draggableConfig\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tree.displayName = 'Tree';\n}\nexport default Tree;","// This icon file is generated automatically.\nvar FolderOpenOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\" } }] }, \"name\": \"folder-open\", \"theme\": \"outlined\" };\nexport default FolderOpenOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FolderOpenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOpenOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar FolderOpenOutlined = function FolderOpenOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FolderOpenOutlinedSvg\n }));\n};\nFolderOpenOutlined.displayName = 'FolderOpenOutlined';\nexport default /*#__PURE__*/React.forwardRef(FolderOpenOutlined);","// This icon file is generated automatically.\nvar FolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\" } }] }, \"name\": \"folder\", \"theme\": \"outlined\" };\nexport default FolderOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar FolderOutlined = function FolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FolderOutlinedSvg\n }));\n};\nFolderOutlined.displayName = 'FolderOutlined';\nexport default /*#__PURE__*/React.forwardRef(FolderOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar Record;\n(function (Record) {\n Record[Record[\"None\"] = 0] = \"None\";\n Record[Record[\"Start\"] = 1] = \"Start\";\n Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {}));\nfunction traverseNodesKey(treeData, callback) {\n function processNode(dataNode) {\n const {\n key,\n children\n } = dataNode;\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback);\n }\n }\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(_ref) {\n let {\n treeData,\n expandedKeys,\n startKey,\n endKey\n } = _ref;\n const keys = [];\n let record = Record.None;\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n if (!startKey || !endKey) {\n return [];\n }\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n traverseNodesKey(treeData, key => {\n if (record === Record.End) {\n return false;\n }\n if (matchKey(key)) {\n // Match test\n keys.push(key);\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 return expandedKeys.includes(key);\n });\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys) {\n const restKeys = _toConsumableArray(keys);\n const nodes = [];\n traverseNodesKey(treeData, (key, node) => {\n const index = restKeys.indexOf(key);\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n return !!restKeys.length;\n });\n return nodes;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport classNames from 'classnames';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n const {\n isLeaf,\n expanded\n } = props;\n if (isLeaf) {\n return /*#__PURE__*/React.createElement(FileOutlined, null);\n }\n return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\nfunction getTreeData(_ref) {\n let {\n treeData,\n children\n } = _ref;\n return treeData || convertTreeToData(children);\n}\nconst DirectoryTree = (_a, ref) => {\n var {\n defaultExpandAll,\n defaultExpandParent,\n defaultExpandedKeys\n } = _a,\n props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]);\n // Shift click usage\n const lastSelectedKey = React.useRef();\n const cachedSelectedKeys = React.useRef();\n const getInitExpandedKeys = () => {\n const {\n keyEntities\n } = convertDataToEntities(getTreeData(props));\n let initExpandedKeys;\n // Expanded keys\n if (defaultExpandAll) {\n initExpandedKeys = Object.keys(keyEntities);\n } else if (defaultExpandParent) {\n initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n } else {\n initExpandedKeys = props.expandedKeys || defaultExpandedKeys;\n }\n return initExpandedKeys;\n };\n const [selectedKeys, setSelectedKeys] = React.useState(props.selectedKeys || props.defaultSelectedKeys || []);\n const [expandedKeys, setExpandedKeys] = React.useState(() => getInitExpandedKeys());\n React.useEffect(() => {\n if ('selectedKeys' in props) {\n setSelectedKeys(props.selectedKeys);\n }\n }, [props.selectedKeys]);\n React.useEffect(() => {\n if ('expandedKeys' in props) {\n setExpandedKeys(props.expandedKeys);\n }\n }, [props.expandedKeys]);\n const onExpand = (keys, info) => {\n var _a;\n if (!('expandedKeys' in props)) {\n setExpandedKeys(keys);\n }\n // Call origin function\n return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n };\n const onSelect = (keys, event) => {\n var _a;\n const {\n multiple\n } = props;\n const {\n node,\n nativeEvent\n } = event;\n const {\n key = ''\n } = node;\n const treeData = getTreeData(props);\n // const newState: DirectoryTreeState = {};\n // We need wrap this event since some value is not same\n const newEvent = Object.assign(Object.assign({}, event), {\n selected: true\n });\n // Windows / Mac single pick\n const ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n const shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;\n // Generate new selected keys\n let newSelectedKeys;\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n treeData,\n expandedKeys,\n startKey: key,\n endKey: lastSelectedKey.current\n })))));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else {\n // Single click\n newSelectedKeys = [key];\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n if (!('selectedKeys' in props)) {\n setSelectedKeys(newSelectedKeys);\n }\n };\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = true,\n expandAction = 'click'\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"showIcon\", \"expandAction\"]);\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const connectClassName = classNames(`${prefixCls}-directory`, {\n [`${prefixCls}-directory-rtl`]: direction === 'rtl'\n }, className);\n return /*#__PURE__*/React.createElement(Tree, Object.assign({\n icon: getIcon,\n ref: ref,\n blockNode: true\n }, otherProps, {\n showIcon: showIcon,\n expandAction: expandAction,\n prefixCls: prefixCls,\n className: connectClassName,\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n onSelect: onSelect,\n onExpand: onExpand\n }));\n};\nconst ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nif (process.env.NODE_ENV !== 'production') {\n ForwardDirectoryTree.displayName = 'DirectoryTree';\n}\nexport default ForwardDirectoryTree;","import { TreeNode } from 'rc-tree';\nimport TreePure from './Tree';\nimport DirectoryTree from './DirectoryTree';\nconst Tree = TreePure;\nTree.DirectoryTree = DirectoryTree;\nTree.TreeNode = TreeNode;\nexport default Tree;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport useStyle from './style';\nconst Group = props => {\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className = ''\n } = props;\n const prefixCls = getPrefixCls('input-group', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input');\n const [wrapSSR, hashId] = useStyle(inputPrefixCls);\n const cls = classNames(prefixCls, {\n [`${prefixCls}-lg`]: props.size === 'large',\n [`${prefixCls}-sm`]: props.size === 'small',\n [`${prefixCls}-compact`]: props.compact,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId, className);\n const formItemContext = useContext(FormItemInputContext);\n const groupFormItemContext = useMemo(() => Object.assign(Object.assign({}, formItemContext), {\n isFormItemInput: false\n }), [formItemContext]);\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: cls,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: groupFormItemContext\n }, props.children)));\n};\nexport default Group;","export function hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n\n var event = e;\n\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n var currentTarget = target.cloneNode(true); // click clear icon\n\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n } // Trigger by composition event, this means we need force change the input value\n\n\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) return;\n element.focus(option); // Selection content\n\n var _ref = option || {},\n cursor = _ref.cursor;\n\n if (cursor) {\n var len = element.value.length;\n\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n\n case 'end':\n element.setSelectionRange(len, len);\n break;\n\n default:\n element.setSelectionRange(0, len);\n }\n }\n}\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n\n return String(value);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React, { cloneElement, useRef } from 'react';\nimport classNames from 'classnames';\nimport { hasAddon, hasPrefixSuffix } from \"./utils/commonUtils\";\n\nvar BaseInput = function BaseInput(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n className = props.className,\n style = props.style,\n affixWrapperClassName = props.affixWrapperClassName,\n groupClassName = props.groupClassName,\n wrapperClassName = props.wrapperClassName,\n disabled = props.disabled,\n readOnly = props.readOnly,\n focused = props.focused,\n triggerFocus = props.triggerFocus,\n allowClear = props.allowClear,\n value = props.value,\n handleReset = props.handleReset,\n hidden = props.hidden;\n var containerRef = useRef(null);\n\n var onInputClick = function onInputClick(e) {\n var _containerRef$current;\n\n if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {\n triggerFocus === null || triggerFocus === void 0 ? void 0 : triggerFocus();\n }\n }; // ================== Clear Icon ================== //\n\n\n var getClearIcon = function getClearIcon() {\n var _classNames;\n\n if (!allowClear) {\n return null;\n }\n\n var needClear = !disabled && !readOnly && value;\n var clearIconCls = \"\".concat(prefixCls, \"-clear-icon\");\n var iconNode = _typeof(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: handleReset // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n ,\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: classNames(clearIconCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(clearIconCls, \"-hidden\"), !needClear), _defineProperty(_classNames, \"\".concat(clearIconCls, \"-has-suffix\"), !!suffix), _classNames)),\n role: \"button\",\n tabIndex: -1\n }, iconNode);\n };\n\n var element = /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n hidden: hidden\n }); // ================== Prefix & Suffix ================== //\n\n if (hasPrefixSuffix(props)) {\n var _classNames2;\n\n var affixWrapperPrefixCls = \"\".concat(prefixCls, \"-affix-wrapper\");\n var affixWrapperCls = classNames(affixWrapperPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-readonly\"), readOnly), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-input-with-clear-btn\"), suffix && allowClear && value), _classNames2), !hasAddon(props) && className, affixWrapperClassName);\n var suffixNode = (suffix || allowClear) && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, getClearIcon(), suffix);\n element = /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: !hasAddon(props) && hidden,\n onClick: onInputClick,\n ref: containerRef\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, prefix), /*#__PURE__*/cloneElement(inputElement, {\n style: null,\n value: value,\n hidden: null\n }), suffixNode);\n } // ================== Addon ================== //\n\n\n if (hasAddon(props)) {\n var wrapperCls = \"\".concat(prefixCls, \"-group\");\n var addonCls = \"\".concat(wrapperCls, \"-addon\");\n var mergedWrapperClassName = classNames(\"\".concat(prefixCls, \"-wrapper\"), wrapperCls, wrapperClassName);\n var mergedGroupClassName = classNames(\"\".concat(prefixCls, \"-group-wrapper\"), className, groupClassName); // Need another wrapper for changing display:table to display:inline-block\n // and put style prop in wrapper\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: mergedGroupClassName,\n style: style,\n hidden: hidden\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: mergedWrapperClassName\n }, addonBefore && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonBefore), /*#__PURE__*/cloneElement(element, {\n style: null,\n hidden: null\n }), addonAfter && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonAfter)));\n }\n\n return element;\n};\n\nexport default BaseInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"autoComplete\", \"onChange\", \"onFocus\", \"onBlur\", \"onPressEnter\", \"onKeyDown\", \"prefixCls\", \"disabled\", \"htmlSize\", \"className\", \"maxLength\", \"suffix\", \"showCount\", \"type\", \"inputClassName\"];\nimport React, { useRef, useState, forwardRef, useImperativeHandle, useEffect } from 'react';\nimport BaseInput from \"./BaseInput\";\nimport omit from \"rc-util/es/omit\";\nimport { fixControlledValue, hasAddon, hasPrefixSuffix, resolveOnChange, triggerFocus } from \"./utils/commonUtils\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var autoComplete = props.autoComplete,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onPressEnter = props.onPressEnter,\n onKeyDown = props.onKeyDown,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input' : _props$prefixCls,\n disabled = props.disabled,\n htmlSize = props.htmlSize,\n className = props.className,\n maxLength = props.maxLength,\n suffix = props.suffix,\n showCount = props.showCount,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n inputClassName = props.inputClassName,\n rest = _objectWithoutProperties(props, _excluded);\n\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n focused = _useState2[0],\n setFocused = _useState2[1];\n\n var inputRef = useRef(null);\n\n var focus = function focus(option) {\n if (inputRef.current) {\n triggerFocus(inputRef.current, option);\n }\n };\n\n useImperativeHandle(ref, function () {\n return {\n focus: focus,\n blur: function blur() {\n var _inputRef$current;\n\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();\n },\n setSelectionRange: function setSelectionRange(start, end, direction) {\n var _inputRef$current2;\n\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.setSelectionRange(start, end, direction);\n },\n select: function select() {\n var _inputRef$current3;\n\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.select();\n },\n input: inputRef.current\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return prev && disabled ? false : prev;\n });\n }, [disabled]);\n\n var handleChange = function handleChange(e) {\n if (props.value === undefined) {\n setValue(e.target.value);\n }\n\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n if (onPressEnter && e.key === 'Enter') {\n onPressEnter(e);\n }\n\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n };\n\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n\n var handleReset = function handleReset(e) {\n setValue('');\n focus();\n\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n\n var getInputElement = function getInputElement() {\n // Fix https://fb.me/react-unknown-prop\n var otherProps = omit(props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear', // Input elements must be either controlled or uncontrolled,\n // specify either the value prop, or the defaultValue prop, but not both.\n 'defaultValue', 'showCount', 'affixWrapperClassName', 'groupClassName', 'inputClassName', 'wrapperClassName', 'htmlSize']);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: autoComplete\n }, otherProps, {\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n className: classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), inputClassName, !hasAddon(props) && !hasPrefixSuffix(props) && className),\n ref: inputRef,\n size: htmlSize,\n type: type\n }));\n };\n\n var getSuffix = function getSuffix() {\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n\n if (suffix || showCount) {\n var val = fixControlledValue(value);\n\n var valueLength = _toConsumableArray(val).length;\n\n var dataCount = _typeof(showCount) === 'object' ? showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n }) : \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n return /*#__PURE__*/React.createElement(React.Fragment, null, !!showCount && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-show-count-suffix\"), _defineProperty({}, \"\".concat(prefixCls, \"-show-count-has-suffix\"), !!suffix))\n }, dataCount), suffix);\n }\n\n return null;\n };\n\n return /*#__PURE__*/React.createElement(BaseInput, _extends({}, rest, {\n prefixCls: prefixCls,\n className: className,\n inputElement: getInputElement(),\n handleReset: handleReset,\n value: fixControlledValue(value),\n focused: focused,\n triggerFocus: focus,\n suffix: getSuffix(),\n disabled: disabled\n }));\n});\nexport default Input;","import BaseInput from \"./BaseInput\";\nimport Input from \"./Input\";\nexport { BaseInput };\nexport default Input;","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n const removePasswordTimeoutRef = useRef([]);\n const removePasswordTimeout = () => {\n removePasswordTimeoutRef.current.push(setTimeout(() => {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n useEffect(() => {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return () => removePasswordTimeoutRef.current.forEach(timer => {\n if (timer) {\n clearTimeout(timer);\n }\n });\n }, []);\n return removePasswordTimeout;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport { hasPrefixSuffix } from './utils';\n// CSSINJS\nimport useStyle from './style';\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return String(value);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n let event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n const currentTarget = target.cloneNode(true);\n // click clear icon\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n }\n // Trigger by composition event, this means we need force change the input value\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n const {\n cursor\n } = option || {};\n if (cursor) {\n const len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nconst Input = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n status: customStatus,\n size: customSize,\n disabled: customDisabled,\n onBlur,\n onFocus,\n suffix,\n allowClear,\n addonAfter,\n addonBefore,\n className,\n onChange\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"onChange\"]);\n const {\n getPrefixCls,\n direction,\n input\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n const inputRef = useRef(null);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ===================== Compact Item =====================\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // ===================== Size =====================\n const size = React.useContext(SizeContext);\n const mergedSize = compactSize || customSize || size;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n const inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n const prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n useEffect(() => {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', `When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ`) : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n const handleBlur = e => {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n const handleFocus = e => {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n const handleChange = e => {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n const suffixNode = (hasFeedback || suffix) && /*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon);\n // Allow clear\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return wrapSSR( /*#__PURE__*/React.createElement(RcInput, Object.assign({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled,\n onBlur: handleBlur,\n onFocus: handleFocus,\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, compactItemClassnames),\n onChange: handleChange,\n addonAfter: addonAfter && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter)),\n addonBefore: addonBefore && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore)),\n inputClassName: classNames({\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered\n }, !inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus), hashId),\n affixWrapperClassName: classNames({\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered\n }, getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus, hasFeedback), hashId),\n wrapperClassName: classNames({\n [`${prefixCls}-group-rtl`]: direction === 'rtl'\n }, hashId),\n groupClassName: classNames({\n [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl'\n }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n })));\n});\nexport default Input;","// eslint-disable-next-line import/prefer-default-export\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}","// This icon file is generated automatically.\nvar EyeInvisibleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z\" } }] }, \"name\": \"eye-invisible\", \"theme\": \"outlined\" };\nexport default EyeInvisibleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeInvisibleOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeInvisibleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeInvisibleOutlined = function EyeInvisibleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeInvisibleOutlinedSvg\n }));\n};\nEyeInvisibleOutlined.displayName = 'EyeInvisibleOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeInvisibleOutlined);","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nconst defaultIconRender = visible => visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\nconst ActionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\nconst Password = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n visibilityToggle = true\n } = props;\n const visibilityControlled = typeof visibilityToggle === 'object' && visibilityToggle.visible !== undefined;\n const [visible, setVisible] = useState(() => visibilityControlled ? visibilityToggle.visible : false);\n const inputRef = useRef(null);\n React.useEffect(() => {\n if (visibilityControlled) {\n setVisible(visibilityToggle.visible);\n }\n }, [visibilityControlled, visibilityToggle]);\n // Remove Password value\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n const onVisibleChange = () => {\n const {\n disabled\n } = props;\n if (disabled) {\n return;\n }\n if (visible) {\n removePasswordTimeout();\n }\n setVisible(prevState => {\n var _a;\n const newState = !prevState;\n if (typeof visibilityToggle === 'object') {\n (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n }\n return newState;\n });\n };\n const getIcon = prefixCls => {\n const {\n action = 'click',\n iconRender = defaultIconRender\n } = props;\n const iconTrigger = ActionMap[action] || '';\n const icon = iconRender(visible);\n const iconProps = {\n [iconTrigger]: onVisibleChange,\n className: `${prefixCls}-icon`,\n key: 'passwordIcon',\n onMouseDown: e => {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n },\n onMouseUp: e => {\n // Prevent caret position change\n // https://github.com/ant-design/ant-design/issues/23524\n e.preventDefault();\n }\n };\n return /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n };\n const {\n className,\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n size\n } = props,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const prefixCls = getPrefixCls('input-password', customizePrefixCls);\n const suffixIcon = visibilityToggle && getIcon(prefixCls);\n const inputClassName = classNames(prefixCls, className, {\n [`${prefixCls}-${size}`]: !!size\n });\n const omittedProps = Object.assign(Object.assign({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n type: visible ? 'text' : 'password',\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon\n });\n if (size) {\n omittedProps.size = size;\n }\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(ref, inputRef)\n }, omittedProps));\n});\nif (process.env.NODE_ENV !== 'production') {\n Password.displayName = 'Password';\n}\nexport default Password;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement } from '../_util/reactNode';\nimport Input from './Input';\nconst Search = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n className,\n size: customizeSize,\n suffix,\n enterButton = false,\n addonAfter,\n loading,\n disabled,\n onSearch: customOnSearch,\n onChange: customOnChange,\n onCompositionStart,\n onCompositionEnd\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const contextSize = React.useContext(SizeContext);\n const composedRef = React.useRef(false);\n const prefixCls = getPrefixCls('input-search', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const {\n compactSize\n } = useCompactItemContext(prefixCls, direction);\n const size = compactSize || customizeSize || contextSize;\n const inputRef = React.useRef(null);\n const onChange = e => {\n if (e && e.target && e.type === 'click' && customOnSearch) {\n customOnSearch(e.target.value, e);\n }\n if (customOnChange) {\n customOnChange(e);\n }\n };\n const onMouseDown = e => {\n var _a;\n if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n e.preventDefault();\n }\n };\n const onSearch = e => {\n var _a, _b;\n if (customOnSearch) {\n customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e);\n }\n };\n const onPressEnter = e => {\n if (composedRef.current || loading) {\n return;\n }\n onSearch(e);\n };\n const searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n const btnClassName = `${prefixCls}-button`;\n let button;\n const enterButtonAsElement = enterButton || {};\n const isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = cloneElement(enterButtonAsElement, Object.assign({\n onMouseDown,\n onClick: e => {\n var _a, _b;\n (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n onSearch(e);\n },\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(Button, {\n className: btnClassName,\n type: enterButton ? 'primary' : undefined,\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onMouseDown: onMouseDown,\n onClick: onSearch,\n loading: loading,\n icon: searchIcon\n }, enterButton);\n }\n if (addonAfter) {\n button = [button, cloneElement(addonAfter, {\n key: 'addonAfter'\n })];\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${size}`]: !!size,\n [`${prefixCls}-with-button`]: !!enterButton\n }, className);\n const handleOnCompositionStart = e => {\n composedRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n const handleOnCompositionEnd = e => {\n composedRef.current = false;\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(inputRef, ref),\n onPressEnter: onPressEnter\n }, restProps, {\n size: size,\n onCompositionStart: handleOnCompositionStart,\n onCompositionEnd: handleOnCompositionEnd,\n prefixCls: inputPrefixCls,\n addonAfter: button,\n suffix: suffix,\n onChange: onChange,\n className: cls,\n disabled: disabled\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\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 pointer-events: none !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', 'word-break'];\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 if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\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 if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(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 if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tab-index', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n document.body.appendChild(hiddenTextarea);\n }\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n // 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 hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = undefined;\n var maxHeight = undefined;\n var overflowY;\n var height = hiddenTextarea.scrollHeight;\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 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 if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n var style = {\n height: height,\n overflowY: overflowY,\n resize: 'none'\n };\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"onPressEnter\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport calculateAutoSizeStyle from './calculateNodeHeight';\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-textarea' : _props$prefixCls,\n onPressEnter = props.onPressEnter,\n defaultValue = props.defaultValue,\n value = props.value,\n autoSize = props.autoSize,\n onResize = props.onResize,\n className = props.className,\n style = props.style,\n disabled = props.disabled,\n onChange = props.onChange,\n onInternalAutoSize = props.onInternalAutoSize,\n restProps = _objectWithoutProperties(props, _excluded);\n // =============================== Value ================================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: function postState(val) {\n return val !== null && val !== void 0 ? val : '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n var onInternalChange = function onInternalChange(event) {\n setMergedValue(event.target.value);\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n };\n // ================================ Ref =================================\n var textareaRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n textArea: textareaRef.current\n };\n });\n // ============================== AutoSize ==============================\n var _React$useMemo = React.useMemo(function () {\n if (autoSize && _typeof(autoSize) === 'object') {\n return [autoSize.minRows, autoSize.maxRows];\n }\n return [];\n }, [autoSize]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n minRows = _React$useMemo2[0],\n maxRows = _React$useMemo2[1];\n var needAutoSize = !!autoSize;\n // =============================== Scroll ===============================\n // https://github.com/ant-design/ant-design/issues/21870\n var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n try {\n // FF has bug with jump of scroll to top. We force back here.\n if (document.activeElement === textareaRef.current) {\n var _textareaRef$current = textareaRef.current,\n selectionStart = _textareaRef$current.selectionStart,\n selectionEnd = _textareaRef$current.selectionEnd,\n scrollTop = _textareaRef$current.scrollTop;\n // Fix Safari bug which not rollback when break line\n // This makes Chinese IME can't input. Do not fix this\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n textareaRef.current.scrollTop = scrollTop;\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n // =============================== Resize ===============================\n var _React$useState = React.useState(RESIZE_STABLE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n resizeState = _React$useState2[0],\n setResizeState = _React$useState2[1];\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n autoSizeStyle = _React$useState4[0],\n setAutoSizeStyle = _React$useState4[1];\n var startResize = function startResize() {\n setResizeState(RESIZE_START);\n if (process.env.NODE_ENV === 'test') {\n onInternalAutoSize === null || onInternalAutoSize === void 0 ? void 0 : onInternalAutoSize();\n }\n };\n // Change to trigger resize measure\n useLayoutEffect(function () {\n if (needAutoSize) {\n startResize();\n }\n }, [value, minRows, maxRows, needAutoSize]);\n useLayoutEffect(function () {\n if (resizeState === RESIZE_START) {\n setResizeState(RESIZE_MEASURING);\n } else if (resizeState === RESIZE_MEASURING) {\n var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n // Safari has bug that text will keep break line on text cut when it's prev is break line.\n // ZombieJ: This not often happen. So we just skip it.\n // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n // if (document.activeElement === textareaRef.current) {\n // textareaRef.current.scrollTop = scrollTop;\n // textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n // }\n setResizeState(RESIZE_STABLE);\n setAutoSizeStyle(textareaStyles);\n } else {\n fixFirefoxAutoScroll();\n }\n }, [resizeState]);\n // We lock resize trigger by raf to avoid Safari warning\n var resizeRafRef = React.useRef();\n var cleanRaf = function cleanRaf() {\n raf.cancel(resizeRafRef.current);\n };\n var onInternalResize = function onInternalResize(size) {\n if (resizeState === RESIZE_STABLE) {\n onResize === null || onResize === void 0 ? void 0 : onResize(size);\n if (autoSize) {\n cleanRaf();\n resizeRafRef.current = raf(function () {\n startResize();\n });\n }\n }\n };\n React.useEffect(function () {\n return cleanRaf;\n }, []);\n // =============================== Render ===============================\n var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n mergedStyle.overflowY = 'hidden';\n mergedStyle.overflowX = 'hidden';\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onInternalResize,\n disabled: !(autoSize || onResize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n ref: textareaRef,\n style: mergedStyle,\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n disabled: disabled,\n value: mergedValue,\n onChange: onInternalChange\n })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ResizableTextArea from './ResizableTextArea';\nvar TextArea = /*#__PURE__*/function (_React$Component) {\n _inherits(TextArea, _React$Component);\n var _super = _createSuper(TextArea);\n function TextArea(props) {\n var _this;\n _classCallCheck(this, TextArea);\n _this = _super.call(this, props);\n _this.resizableTextArea = void 0;\n _this.focus = function () {\n _this.resizableTextArea.textArea.focus();\n };\n _this.saveTextArea = function (resizableTextArea) {\n _this.resizableTextArea = resizableTextArea;\n };\n _this.handleChange = function (e) {\n var onChange = _this.props.onChange;\n _this.setValue(e.target.value);\n if (onChange) {\n onChange(e);\n }\n };\n _this.handleKeyDown = function (e) {\n var _this$props = _this.props,\n onPressEnter = _this$props.onPressEnter,\n onKeyDown = _this$props.onKeyDown;\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n var value = typeof props.value === 'undefined' || props.value === null ? props.defaultValue : props.value;\n _this.state = {\n value: value\n };\n return _this;\n }\n _createClass(TextArea, [{\n key: \"setValue\",\n value: function setValue(value, callback) {\n if (!('value' in this.props)) {\n this.setState({\n value: value\n }, callback);\n }\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.resizableTextArea.textArea.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, this.props, {\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n ref: this.saveTextArea\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value\n };\n }\n return null;\n }\n }]);\n return TextArea;\n}(React.Component);\nexport { ResizableTextArea };\nexport default TextArea;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { cloneElement } from '../_util/reactNode';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nconst ClearableInputType = ['text', 'input'];\nfunction hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nlet ClearableLabeledInput = /*#__PURE__*/function (_React$Component) {\n _inherits(ClearableLabeledInput, _React$Component);\n var _super = _createSuper(ClearableLabeledInput);\n function ClearableLabeledInput() {\n _classCallCheck(this, ClearableLabeledInput);\n return _super.apply(this, arguments);\n }\n _createClass(ClearableLabeledInput, [{\n key: \"renderClearIcon\",\n value: function renderClearIcon(prefixCls) {\n const {\n value,\n disabled,\n readOnly,\n handleReset,\n suffix\n } = this.props;\n const needClear = !disabled && !readOnly && value;\n const className = `${prefixCls}-clear-icon`;\n return /*#__PURE__*/React.createElement(CloseCircleFilled, {\n onClick: handleReset,\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n onMouseDown: e => e.preventDefault(),\n className: classNames({\n [`${className}-hidden`]: !needClear,\n [`${className}-has-suffix`]: !!suffix\n }, className),\n role: \"button\"\n });\n }\n }, {\n key: \"renderTextAreaWithClearIcon\",\n value: function renderTextAreaWithClearIcon(prefixCls, element, statusContext) {\n const {\n value,\n allowClear,\n className,\n style,\n direction,\n bordered,\n hidden,\n status: customStatus,\n hashId\n } = this.props;\n const {\n status: contextStatus,\n hasFeedback\n } = statusContext;\n if (!allowClear) {\n return cloneElement(element, {\n value\n });\n }\n const affixWrapperCls = classNames(`${prefixCls}-affix-wrapper`, `${prefixCls}-affix-wrapper-textarea-with-clear-btn`, getStatusClassNames(`${prefixCls}-affix-wrapper`, getMergedStatus(contextStatus, customStatus), hasFeedback), {\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered,\n // className will go to addon wrapper\n [`${className}`]: !hasAddon(this.props) && className\n }, hashId);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: hidden\n }, cloneElement(element, {\n style: null,\n value\n }), this.renderClearIcon(prefixCls));\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(FormItemInputContext.Consumer, null, statusContext => {\n const {\n prefixCls,\n inputType,\n element\n } = this.props;\n if (inputType === ClearableInputType[0]) {\n return this.renderTextAreaWithClearIcon(prefixCls, element, statusContext);\n }\n });\n }\n }]);\n return ClearableLabeledInput;\n}(React.Component);\nexport default ClearableLabeledInput;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport ClearableLabeledInput from './ClearableLabeledInput';\nimport { fixControlledValue, resolveOnChange, triggerFocus } from './Input';\nimport useStyle from './style';\nfunction fixEmojiLength(value, maxLength) {\n return _toConsumableArray(value || '').slice(0, maxLength).join('');\n}\nfunction setTriggerValue(isCursorInEnd, preValue, triggerValue, maxLength) {\n let newTriggerValue = triggerValue;\n if (isCursorInEnd) {\n // 光标在尾部,直接截断\n newTriggerValue = fixEmojiLength(triggerValue, maxLength);\n } else if (_toConsumableArray(preValue || '').length < triggerValue.length && _toConsumableArray(triggerValue || '').length > maxLength) {\n // 光标在中间,如果最后的值超过最大值,则采用原先的值\n newTriggerValue = preValue;\n }\n return newTriggerValue;\n}\nconst TextArea = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n bordered = true,\n showCount = false,\n maxLength,\n className,\n style,\n size: customizeSize,\n disabled: customDisabled,\n onCompositionStart,\n onCompositionEnd,\n onChange,\n status: customStatus\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"showCount\", \"maxLength\", \"className\", \"style\", \"size\", \"disabled\", \"onCompositionStart\", \"onCompositionEnd\", \"onChange\", \"status\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n const innerRef = React.useRef(null);\n const clearableInputRef = React.useRef(null);\n const [compositing, setCompositing] = React.useState(false);\n const oldCompositionValueRef = React.useRef();\n const oldSelectionStartRef = React.useRef(0);\n const [value, setValue] = useMergedState(props.defaultValue, {\n value: props.value\n });\n const {\n hidden\n } = props;\n const handleSetValue = (val, callback) => {\n if (props.value === undefined) {\n setValue(val);\n callback === null || callback === void 0 ? void 0 : callback();\n }\n };\n // =========================== Value Update ===========================\n // Max length value\n const hasMaxLength = Number(maxLength) > 0;\n const onInternalCompositionStart = e => {\n setCompositing(true);\n // 拼音输入前保存一份旧值\n oldCompositionValueRef.current = value;\n // 保存旧的光标位置\n oldSelectionStartRef.current = e.currentTarget.selectionStart;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n const onInternalCompositionEnd = e => {\n var _a;\n setCompositing(false);\n let triggerValue = e.currentTarget.value;\n if (hasMaxLength) {\n const isCursorInEnd = oldSelectionStartRef.current >= maxLength + 1 || oldSelectionStartRef.current === ((_a = oldCompositionValueRef.current) === null || _a === void 0 ? void 0 : _a.length);\n triggerValue = setTriggerValue(isCursorInEnd, oldCompositionValueRef.current, triggerValue, maxLength);\n }\n // Patch composition onChange when value changed\n if (triggerValue !== value) {\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n }\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n const handleChange = e => {\n let triggerValue = e.target.value;\n if (!compositing && hasMaxLength) {\n // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况\n const isCursorInEnd = e.target.selectionStart >= maxLength + 1 || e.target.selectionStart === triggerValue.length || !e.target.selectionStart;\n triggerValue = setTriggerValue(isCursorInEnd, value, triggerValue, maxLength);\n }\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n };\n // ============================== Reset ===============================\n const handleReset = e => {\n var _a, _b, _c;\n handleSetValue('');\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n resolveOnChange((_c = (_b = innerRef.current) === null || _b === void 0 ? void 0 : _b.resizableTextArea) === null || _c === void 0 ? void 0 : _c.textArea, e, onChange);\n };\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n React.useImperativeHandle(ref, () => {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: option => {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n const textArea = /*#__PURE__*/React.createElement(RcTextArea, Object.assign({}, omit(props, ['allowClear']), {\n disabled: mergedDisabled,\n className: classNames({\n [`${prefixCls}-borderless`]: !bordered,\n [className]: className && !showCount,\n [`${prefixCls}-sm`]: size === 'small' || customizeSize === 'small',\n [`${prefixCls}-lg`]: size === 'large' || customizeSize === 'large'\n }, getStatusClassNames(prefixCls, mergedStatus), hashId),\n style: showCount ? {\n resize: style === null || style === void 0 ? void 0 : style.resize\n } : style,\n prefixCls: prefixCls,\n onCompositionStart: onInternalCompositionStart,\n onChange: handleChange,\n onCompositionEnd: onInternalCompositionEnd,\n ref: innerRef\n }));\n let val = fixControlledValue(value);\n if (!compositing && hasMaxLength && (props.value === null || props.value === undefined)) {\n // fix #27612 将value转为数组进行截取,解决 '😂'.length === 2 等emoji表情导致的截取乱码的问题\n val = fixEmojiLength(val, maxLength);\n }\n // TextArea\n const textareaNode = /*#__PURE__*/React.createElement(ClearableLabeledInput, Object.assign({\n disabled: mergedDisabled\n }, props, {\n prefixCls: prefixCls,\n direction: direction,\n inputType: \"text\",\n value: val,\n element: textArea,\n handleReset: handleReset,\n ref: clearableInputRef,\n bordered: bordered,\n status: customStatus,\n style: showCount ? undefined : style,\n hashId: hashId\n }));\n // Only show text area wrapper when needed\n if (showCount || hasFeedback) {\n const valueLength = _toConsumableArray(val).length;\n let dataCount = '';\n if (typeof showCount === 'object') {\n dataCount = showCount.formatter({\n value: val,\n count: valueLength,\n maxLength\n });\n } else {\n dataCount = `${valueLength}${hasMaxLength ? ` / ${maxLength}` : ''}`;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n hidden: hidden,\n className: classNames(`${prefixCls}-textarea`, {\n [`${prefixCls}-textarea-rtl`]: direction === 'rtl',\n [`${prefixCls}-textarea-show-count`]: showCount\n }, getStatusClassNames(`${prefixCls}-textarea`, mergedStatus, hasFeedback), className, hashId),\n style: style,\n \"data-count\": dataCount\n }, textareaNode, hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-textarea-suffix`\n }, feedbackIcon));\n }\n return wrapSSR(textareaNode);\n});\nexport default TextArea;","import Group from './Group';\nimport InternalInput from './Input';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nconst Input = InternalInput;\nif (process.env.NODE_ENV !== 'production') {\n Input.displayName = 'Input';\n}\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nexport default Input;","import SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nimport Input from '../../../input';\nfunction FilterSearch(_ref) {\n let {\n value,\n onChange,\n filterSearch,\n tablePrefixCls,\n locale\n } = _ref;\n if (!filterSearch) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-search`\n }, /*#__PURE__*/React.createElement(Input, {\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n placeholder: locale.filterSearchPlaceholder,\n onChange: onChange,\n value: value,\n // for skip min-width of input\n htmlSize: 1,\n className: `${tablePrefixCls}-filter-dropdown-search-input`\n }));\n}\nexport default FilterSearch;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nconst onKeyDown = event => {\n const {\n keyCode\n } = event;\n if (keyCode === KeyCode.ENTER) {\n event.stopPropagation();\n }\n};\nconst FilterDropdownMenuWrapper = props => /*#__PURE__*/React.createElement(\"div\", {\n className: props.className,\n onClick: e => e.stopPropagation(),\n onKeyDown: onKeyDown\n}, props.children);\nexport default FilterDropdownMenuWrapper;","import FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport classNames from 'classnames';\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport { flattenKeys } from '.';\nimport Button from '../../../button';\nimport Checkbox from '../../../checkbox';\nimport { ConfigContext } from '../../../config-provider/context';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport Menu from '../../../menu';\nimport { OverrideProvider } from '../../../menu/OverrideContext';\nimport Radio from '../../../radio';\nimport Tree from '../../../tree';\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport FilterSearch from './FilterSearch';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nimport warning from '../../../_util/warning';\nfunction hasSubMenu(filters) {\n return filters.some(_ref => {\n let {\n children\n } = _ref;\n return children;\n });\n}\nfunction searchValueMatched(searchValue, text) {\n if (typeof text === 'string' || typeof text === 'number') {\n return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n }\n return false;\n}\nfunction renderFilterItems(_ref2) {\n let {\n filters,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n } = _ref2;\n return filters.map((filter, index) => {\n const key = String(filter.value);\n if (filter.children) {\n return {\n key: key || index,\n label: filter.text,\n popupClassName: `${prefixCls}-dropdown-submenu`,\n children: renderFilterItems({\n filters: filter.children,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n })\n };\n }\n const Component = filterMultiple ? Checkbox : Radio;\n const item = {\n key: filter.value !== undefined ? key : index,\n label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {\n checked: filteredKeys.includes(key)\n }), /*#__PURE__*/React.createElement(\"span\", null, filter.text))\n };\n if (searchValue.trim()) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, filter) ? item : null;\n }\n return searchValueMatched(searchValue, filter.text) ? item : null;\n }\n return item;\n });\n}\nfunction FilterDropdown(props) {\n var _a, _b;\n const {\n tablePrefixCls,\n prefixCls,\n column,\n dropdownPrefixCls,\n columnKey,\n filterMultiple,\n filterMode = 'menu',\n filterSearch = false,\n filterState,\n triggerFilter,\n locale,\n children,\n getPopupContainer\n } = props;\n const {\n filterDropdownOpen,\n onFilterDropdownOpenChange,\n filterResetToDefaultFilteredValue,\n defaultFilteredValue,\n // Deprecated\n filterDropdownVisible,\n onFilterDropdownVisibleChange\n } = column;\n const [visible, setVisible] = React.useState(false);\n const filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n const triggerVisible = newVisible => {\n setVisible(newVisible);\n onFilterDropdownOpenChange === null || onFilterDropdownOpenChange === void 0 ? void 0 : onFilterDropdownOpenChange(newVisible);\n onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n };\n if (process.env.NODE_ENV !== 'production') {\n [['filterDropdownVisible', 'filterDropdownOpen', filterDropdownVisible], ['onFilterDropdownVisibleChange', 'onFilterDropdownOpenChange', onFilterDropdownVisibleChange]].forEach(_ref3 => {\n let [deprecatedName, newName, prop] = _ref3;\n process.env.NODE_ENV !== \"production\" ? warning(prop === undefined || prop === null, 'Table', `\\`${deprecatedName}\\` is deprecated. Please use \\`${newName}\\` instead.`) : void 0;\n });\n }\n const mergedVisible = (_b = filterDropdownOpen !== null && filterDropdownOpen !== void 0 ? filterDropdownOpen : filterDropdownVisible) !== null && _b !== void 0 ? _b : visible;\n // ===================== Select Keys =====================\n const propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n const [getFilteredKeysSync, setFilteredKeysSync] = useSyncState(propFilteredKeys || []);\n const onSelectKeys = _ref4 => {\n let {\n selectedKeys\n } = _ref4;\n setFilteredKeysSync(selectedKeys);\n };\n const onCheck = (keys, _ref5) => {\n let {\n node,\n checked\n } = _ref5;\n if (!filterMultiple) {\n onSelectKeys({\n selectedKeys: checked && node.key ? [node.key] : []\n });\n } else {\n onSelectKeys({\n selectedKeys: keys\n });\n }\n };\n React.useEffect(() => {\n if (!visible) {\n return;\n }\n onSelectKeys({\n selectedKeys: propFilteredKeys || []\n });\n }, [propFilteredKeys]);\n // ====================== Open Keys ======================\n const [openKeys, setOpenKeys] = React.useState([]);\n const onOpenChange = keys => {\n setOpenKeys(keys);\n };\n // search in tree mode column filter\n const [searchValue, setSearchValue] = React.useState('');\n const onSearch = e => {\n const {\n value\n } = e.target;\n setSearchValue(value);\n };\n // clear search value after close filter dropdown\n React.useEffect(() => {\n if (!visible) {\n setSearchValue('');\n }\n }, [visible]);\n // ======================= Submit ========================\n const internalTriggerFilter = keys => {\n const mergedKeys = keys && keys.length ? keys : null;\n if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n return null;\n }\n if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys, true)) {\n return null;\n }\n triggerFilter({\n column,\n key: columnKey,\n filteredKeys: mergedKeys\n });\n };\n const onConfirm = () => {\n triggerVisible(false);\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onReset = function () {\n let {\n confirm,\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n confirm: false,\n closeDropdown: false\n };\n if (confirm) {\n internalTriggerFilter([]);\n }\n if (closeDropdown) {\n triggerVisible(false);\n }\n setSearchValue('');\n if (filterResetToDefaultFilteredValue) {\n setFilteredKeysSync((defaultFilteredValue || []).map(key => String(key)));\n } else {\n setFilteredKeysSync([]);\n }\n };\n const doFilter = function () {\n let {\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n closeDropdown: true\n };\n if (closeDropdown) {\n triggerVisible(false);\n }\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onVisibleChange = newVisible => {\n if (newVisible && propFilteredKeys !== undefined) {\n // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefiend)\n setFilteredKeysSync(propFilteredKeys || []);\n }\n triggerVisible(newVisible);\n // Default will filter when closed\n if (!newVisible && !column.filterDropdown) {\n onConfirm();\n }\n };\n // ======================== Style ========================\n const dropdownMenuClass = classNames({\n [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || [])\n });\n const onCheckAll = e => {\n if (e.target.checked) {\n const allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(key => String(key));\n setFilteredKeysSync(allFilterKeys);\n } else {\n setFilteredKeysSync([]);\n }\n };\n const getTreeData = _ref6 => {\n let {\n filters\n } = _ref6;\n return (filters || []).map((filter, index) => {\n const key = String(filter.value);\n const item = {\n title: filter.text,\n key: filter.value !== undefined ? key : index\n };\n if (filter.children) {\n item.children = getTreeData({\n filters: filter.children\n });\n }\n return item;\n });\n };\n const getFilterData = node => {\n var _a;\n return Object.assign(Object.assign({}, node), {\n text: node.title,\n value: node.key,\n children: ((_a = node.children) === null || _a === void 0 ? void 0 : _a.map(item => getFilterData(item))) || []\n });\n };\n let dropdownContent;\n if (typeof column.filterDropdown === 'function') {\n dropdownContent = column.filterDropdown({\n prefixCls: `${dropdownPrefixCls}-custom`,\n setSelectedKeys: selectedKeys => onSelectKeys({\n selectedKeys\n }),\n selectedKeys: getFilteredKeysSync(),\n confirm: doFilter,\n clearFilters: onReset,\n filters: column.filters,\n visible: mergedVisible,\n close: () => {\n triggerVisible(false);\n }\n });\n } else if (column.filterDropdown) {\n dropdownContent = column.filterDropdown;\n } else {\n const selectedKeys = getFilteredKeysSync() || [];\n const getFilterComponent = () => {\n if ((column.filters || []).length === 0) {\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n description: locale.filterEmptyText,\n imageStyle: {\n height: 24\n },\n style: {\n margin: 0,\n padding: '16px 0'\n }\n });\n }\n if (filterMode === 'tree') {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-tree`\n }, filterMultiple ? /*#__PURE__*/React.createElement(Checkbox, {\n checked: selectedKeys.length === flattenKeys(column.filters).length,\n indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(column.filters).length,\n className: `${tablePrefixCls}-filter-dropdown-checkall`,\n onChange: onCheckAll\n }, locale.filterCheckall) : null, /*#__PURE__*/React.createElement(Tree, {\n checkable: true,\n selectable: false,\n blockNode: true,\n multiple: filterMultiple,\n checkStrictly: !filterMultiple,\n className: `${dropdownPrefixCls}-menu`,\n onCheck: onCheck,\n checkedKeys: selectedKeys,\n selectedKeys: selectedKeys,\n showIcon: false,\n treeData: getTreeData({\n filters: column.filters\n }),\n autoExpandParent: true,\n defaultExpandAll: true,\n filterTreeNode: searchValue.trim() ? node => {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, getFilterData(node));\n }\n return searchValueMatched(searchValue, node.title);\n } : undefined\n })));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(Menu, {\n selectable: true,\n multiple: filterMultiple,\n prefixCls: `${dropdownPrefixCls}-menu`,\n className: dropdownMenuClass,\n onSelect: onSelectKeys,\n onDeselect: onSelectKeys,\n selectedKeys: selectedKeys,\n getPopupContainer: getPopupContainer,\n openKeys: openKeys,\n onOpenChange: onOpenChange,\n items: renderFilterItems({\n filters: column.filters || [],\n filterSearch,\n prefixCls,\n filteredKeys: getFilteredKeysSync(),\n filterMultiple,\n searchValue\n })\n }));\n };\n const getResetDisabled = () => {\n if (filterResetToDefaultFilteredValue) {\n return isEqual((defaultFilteredValue || []).map(key => String(key)), selectedKeys, true);\n }\n return selectedKeys.length === 0;\n };\n dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-dropdown-btns`\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n size: \"small\",\n disabled: getResetDisabled(),\n onClick: () => onReset()\n }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm\n }, locale.filterConfirm)));\n }\n // We should not block customize Menu with additional props\n if (column.filterDropdown) {\n dropdownContent = /*#__PURE__*/React.createElement(OverrideProvider, {\n selectable: undefined\n }, dropdownContent);\n }\n const menu = () => /*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n className: `${prefixCls}-dropdown`\n }, dropdownContent);\n let filterIcon;\n if (typeof column.filterIcon === 'function') {\n filterIcon = column.filterIcon(filtered);\n } else if (column.filterIcon) {\n filterIcon = column.filterIcon;\n } else {\n filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n }\n const {\n direction\n } = React.useContext(ConfigContext);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-column`\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${tablePrefixCls}-column-title`\n }, children), /*#__PURE__*/React.createElement(Dropdown, {\n dropdownRender: menu,\n trigger: ['click'],\n open: mergedVisible,\n onOpenChange: onVisibleChange,\n getPopupContainer: getPopupContainer,\n placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight'\n }, /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: classNames(`${prefixCls}-trigger`, {\n active: filtered\n }),\n onClick: e => {\n e.stopPropagation();\n }\n }, filterIcon)));\n}\nexport default FilterDropdown;","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n const ref = React.useRef(initialValue);\n const forceUpdate = useForceUpdate();\n return [() => ref.current, newValue => {\n ref.current = newValue;\n // re-render\n forceUpdate();\n }];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown from './FilterDropdown';\nfunction collectFilterStates(columns, init, pos) {\n let filterStates = [];\n (columns || []).forEach((column, index) => {\n var _a;\n const columnPos = getColumnPos(index, pos);\n if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n if ('filteredValue' in column) {\n // Controlled\n let filteredValues = column.filteredValue;\n if (!('filterDropdown' in column)) {\n filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n }\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: filteredValues,\n forceFiltered: column.filtered\n });\n } else {\n // Uncontrolled\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n forceFiltered: column.filtered\n });\n }\n }\n if ('children' in column) {\n filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n }\n });\n return filterStates;\n}\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, locale, triggerFilter, getPopupContainer, pos) {\n return columns.map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n const {\n filterMultiple = true,\n filterMode,\n filterSearch\n } = column;\n let newColumn = column;\n if (newColumn.filters || newColumn.filterDropdown) {\n const columnKey = getColumnKey(newColumn, columnPos);\n const filterState = filterStates.find(_ref => {\n let {\n key\n } = _ref;\n return columnKey === key;\n });\n newColumn = Object.assign(Object.assign({}, newColumn), {\n title: renderProps => /*#__PURE__*/React.createElement(FilterDropdown, {\n tablePrefixCls: prefixCls,\n prefixCls: `${prefixCls}-filter`,\n dropdownPrefixCls: dropdownPrefixCls,\n column: newColumn,\n columnKey: columnKey,\n filterState: filterState,\n filterMultiple: filterMultiple,\n filterMode: filterMode,\n filterSearch: filterSearch,\n triggerFilter: triggerFilter,\n locale: locale,\n getPopupContainer: getPopupContainer\n }, renderColumnTitle(column.title, renderProps))\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, locale, triggerFilter, getPopupContainer, columnPos)\n });\n }\n return newColumn;\n });\n}\nexport function flattenKeys(filters) {\n let keys = [];\n (filters || []).forEach(_ref2 => {\n let {\n value,\n children\n } = _ref2;\n keys.push(value);\n if (children) {\n keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n }\n });\n return keys;\n}\nfunction generateFilterInfo(filterStates) {\n const currentFilters = {};\n filterStates.forEach(_ref3 => {\n let {\n key,\n filteredKeys,\n column\n } = _ref3;\n const {\n filters,\n filterDropdown\n } = column;\n if (filterDropdown) {\n currentFilters[key] = filteredKeys || null;\n } else if (Array.isArray(filteredKeys)) {\n const keys = flattenKeys(filters);\n currentFilters[key] = keys.filter(originKey => filteredKeys.includes(String(originKey)));\n } else {\n currentFilters[key] = null;\n }\n });\n return currentFilters;\n}\nexport function getFilterData(data, filterStates) {\n return filterStates.reduce((currentData, filterState) => {\n const {\n column: {\n onFilter,\n filters\n },\n filteredKeys\n } = filterState;\n if (onFilter && filteredKeys && filteredKeys.length) {\n return currentData.filter(record => filteredKeys.some(key => {\n const keys = flattenKeys(filters);\n const keyIndex = keys.findIndex(k => String(k) === String(key));\n const realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n return onFilter(realKey, record);\n }));\n }\n return currentData;\n }, data);\n}\nfunction useFilter(_ref4) {\n let {\n prefixCls,\n dropdownPrefixCls,\n mergedColumns,\n onFilterChange,\n getPopupContainer,\n locale: tableLocale\n } = _ref4;\n const [filterStates, setFilterStates] = React.useState(() => collectFilterStates(mergedColumns, true));\n const mergedFilterStates = React.useMemo(() => {\n const collectedStates = collectFilterStates(mergedColumns, false);\n if (collectedStates.length === 0) {\n return collectedStates;\n }\n let filteredKeysIsAllNotControlled = true;\n let filteredKeysIsAllControlled = true;\n collectedStates.forEach(_ref5 => {\n let {\n filteredKeys\n } = _ref5;\n if (filteredKeys !== undefined) {\n filteredKeysIsAllNotControlled = false;\n } else {\n filteredKeysIsAllControlled = false;\n }\n });\n // Return if not controlled\n if (filteredKeysIsAllNotControlled) {\n // Filter column may have been removed\n const keyList = (mergedColumns || []).map((column, index) => getColumnKey(column, getColumnPos(index)));\n return filterStates.filter(_ref6 => {\n let {\n key\n } = _ref6;\n return keyList.includes(key);\n }).map(item => {\n const col = mergedColumns[keyList.findIndex(key => key === item.key)];\n return Object.assign(Object.assign({}, item), {\n column: Object.assign(Object.assign({}, item.column), col),\n forceFiltered: col.filtered\n });\n });\n }\n process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'Table', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n return collectedStates;\n }, [mergedColumns, filterStates]);\n const filters = React.useMemo(() => generateFilterInfo(mergedFilterStates), [mergedFilterStates]);\n const triggerFilter = filterState => {\n const newFilterStates = mergedFilterStates.filter(_ref7 => {\n let {\n key\n } = _ref7;\n return key !== filterState.key;\n });\n newFilterStates.push(filterState);\n setFilterStates(newFilterStates);\n onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n };\n const transformColumns = innerColumns => injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, tableLocale, triggerFilter, getPopupContainer);\n return [transformColumns, mergedFilterStates, filters];\n}\nexport default useFilter;","function extendsObject() {\n const result = Object.assign({}, arguments.length <= 0 ? undefined : arguments[0]);\n for (let i = 1; i < arguments.length; i++) {\n const obj = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (obj) {\n Object.keys(obj).forEach(key => {\n const val = obj[key];\n if (val !== undefined) {\n result[key] = val;\n }\n });\n }\n }\n return result;\n}\nexport default extendsObject;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { useState } from 'react';\nimport extendsObject from '../../_util/extendsObject';\nexport const DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(mergedPagination, pagination) {\n const param = {\n current: mergedPagination.current,\n pageSize: mergedPagination.pageSize\n };\n const paginationObj = pagination && typeof pagination === 'object' ? pagination : {};\n Object.keys(paginationObj).forEach(pageProp => {\n const value = mergedPagination[pageProp];\n if (typeof value !== 'function') {\n param[pageProp] = value;\n }\n });\n return param;\n}\nexport default function usePagination(total, pagination, onChange) {\n const _a = pagination && typeof pagination === 'object' ? pagination : {},\n {\n total: paginationTotal = 0\n } = _a,\n paginationObj = __rest(_a, [\"total\"]);\n const [innerPagination, setInnerPagination] = useState(() => ({\n current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n }));\n // ============ Basic Pagination Config ============\n const mergedPagination = extendsObject(innerPagination, paginationObj, {\n total: paginationTotal > 0 ? paginationTotal : total\n });\n // Reset `current` if data length or pageSize changed\n const maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n if (mergedPagination.current > maxPage) {\n // Prevent a maximum page count of 0\n mergedPagination.current = maxPage || 1;\n }\n const refreshPagination = (current, pageSize) => {\n setInnerPagination({\n current: current !== null && current !== void 0 ? current : 1,\n pageSize: pageSize || mergedPagination.pageSize\n });\n };\n const onInternalChange = (current, pageSize) => {\n var _a;\n if (pagination) {\n (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n }\n refreshPagination(current, pageSize);\n onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n };\n if (pagination === false) {\n return [{}, () => {}];\n }\n return [Object.assign(Object.assign({}, mergedPagination), {\n onChange: onInternalChange\n }), refreshPagination];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Radio from '../../radio';\nimport warning from '../../_util/warning';\n// TODO: warning if use ajax!!!\nexport const SELECTION_COLUMN = {};\nexport const SELECTION_ALL = 'SELECT_ALL';\nexport const SELECTION_INVERT = 'SELECT_INVERT';\nexport const SELECTION_NONE = 'SELECT_NONE';\nconst EMPTY_LIST = [];\nfunction flattenData(childrenColumnName, data) {\n let list = [];\n (data || []).forEach(record => {\n list.push(record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(childrenColumnName, record[childrenColumnName])));\n }\n });\n return list;\n}\nexport default function useSelection(rowSelection, config) {\n const {\n preserveSelectedRowKeys,\n selectedRowKeys,\n defaultSelectedRowKeys,\n getCheckboxProps,\n onChange: onSelectionChange,\n onSelect,\n onSelectAll,\n onSelectInvert,\n onSelectNone,\n onSelectMultiple,\n columnWidth: selectionColWidth,\n type: selectionType,\n selections,\n fixed,\n renderCell: customizeRenderCell,\n hideSelectAll,\n checkStrictly = true\n } = rowSelection || {};\n const {\n prefixCls,\n data,\n pageData,\n getRecordByKey,\n getRowKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer\n } = config;\n // ========================= Keys =========================\n const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {\n value: selectedRowKeys\n });\n // ======================== Caches ========================\n const preserveRecordsRef = React.useRef(new Map());\n const updatePreserveRecordsCache = useCallback(keys => {\n if (preserveSelectedRowKeys) {\n const newCache = new Map();\n // Keep key if mark as preserveSelectedRowKeys\n keys.forEach(key => {\n let record = getRecordByKey(key);\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n newCache.set(key, record);\n });\n // Refresh to new cache\n preserveRecordsRef.current = newCache;\n }\n }, [getRecordByKey, preserveSelectedRowKeys]);\n // Update cache with selectedKeys\n React.useEffect(() => {\n updatePreserveRecordsCache(mergedSelectedKeys);\n }, [mergedSelectedKeys]);\n const {\n keyEntities\n } = useMemo(() => checkStrictly ? {\n keyEntities: null\n } : convertDataToEntities(data, {\n externalGetKey: getRowKey,\n childrenPropName: childrenColumnName\n }), [data, getRowKey, checkStrictly, childrenColumnName]);\n // Get flatten data\n const flattedData = useMemo(() => flattenData(childrenColumnName, pageData), [pageData, childrenColumnName]);\n // Get all checkbox props\n const checkboxPropsMap = useMemo(() => {\n const map = new Map();\n flattedData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n process.env.NODE_ENV !== \"production\" ? warning(!('checked' in checkboxProps || 'defaultChecked' in checkboxProps), 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.') : void 0;\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n const isCheckboxDisabled = useCallback(r => {\n var _a;\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n const [derivedSelectedKeys, derivedHalfSelectedKeys] = useMemo(() => {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n const {\n checkedKeys,\n halfCheckedKeys\n } = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled);\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]);\n const derivedSelectedKeySet = useMemo(() => {\n const keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n const derivedHalfSelectedKeySet = useMemo(() => selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys), [derivedHalfSelectedKeys, selectionType]);\n // Save last selected key to enable range selection\n const [lastSelectedKey, setLastSelectedKey] = useState(null);\n // Reset if rowSelection reset\n React.useEffect(() => {\n if (!rowSelection) {\n setMergedSelectedKeys(EMPTY_LIST);\n }\n }, [!!rowSelection]);\n const setSelectedKeys = useCallback((keys, method) => {\n let availableKeys;\n let records;\n updatePreserveRecordsCache(keys);\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map(key => preserveRecordsRef.current.get(key));\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(key => {\n const record = getRecordByKey(key);\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n setMergedSelectedKeys(availableKeys);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records, {\n type: method\n });\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]);\n // ====================== Selections ======================\n // Trigger single `onSelect` event\n const triggerSingleSelection = useCallback((key, selected, keys, event) => {\n if (onSelect) {\n const rows = keys.map(k => getRecordByKey(k));\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n setSelectedKeys(keys, 'single');\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n const mergedSelections = useMemo(() => {\n if (!selections || hideSelectAll) {\n return null;\n }\n const selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return selectionList.map(selection => {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect() {\n setSelectedKeys(data.map((record, index) => getRowKey(record, index)).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n }), 'all');\n }\n };\n }\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect() {\n const keySet = new Set(derivedSelectedKeySet);\n pageData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkProps = checkboxPropsMap.get(key);\n if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n if (keySet.has(key)) {\n keySet.delete(key);\n } else {\n keySet.add(key);\n }\n }\n });\n const keys = Array.from(keySet);\n if (onSelectInvert) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.') : void 0;\n onSelectInvert(keys);\n }\n setSelectedKeys(keys, 'invert');\n }\n };\n }\n if (selection === SELECTION_NONE) {\n return {\n key: 'none',\n text: tableLocale.selectNone,\n onSelect() {\n onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n setSelectedKeys(Array.from(derivedSelectedKeySet).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n }), 'none');\n }\n };\n }\n return selection;\n }).map(selection => Object.assign(Object.assign({}, selection), {\n onSelect: function () {\n var _a2;\n var _a;\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n (_a = selection.onSelect) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [selection].concat(rest));\n setLastSelectedKey(null);\n }\n }));\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]);\n // ======================= Columns ========================\n const transformColumns = useCallback(columns => {\n var _a;\n // >>>>>>>>>>> Skip if not exists `rowSelection`\n if (!rowSelection) {\n process.env.NODE_ENV !== \"production\" ? warning(!columns.includes(SELECTION_COLUMN), 'Table', '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.') : void 0;\n return columns.filter(col => col !== SELECTION_COLUMN);\n }\n // >>>>>>>>>>> Support selection\n let cloneColumns = _toConsumableArray(columns);\n const keySet = new Set(derivedSelectedKeySet);\n // Record key only need check with enabled\n const recordKeys = flattedData.map(getRowKey).filter(key => !checkboxPropsMap.get(key).disabled);\n const checkedCurrentAll = recordKeys.every(key => keySet.has(key));\n const checkedCurrentSome = recordKeys.some(key => keySet.has(key));\n const onSelectAllChange = () => {\n const changeKeys = [];\n if (checkedCurrentAll) {\n recordKeys.forEach(key => {\n keySet.delete(key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(key => {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n const keys = Array.from(keySet);\n onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(k => getRecordByKey(k)), changeKeys.map(k => getRecordByKey(k)));\n setSelectedKeys(keys, 'all');\n setLastSelectedKey(null);\n };\n // ===================== Render =====================\n // Title Cell\n let title;\n if (selectionType !== 'radio') {\n let customizeSelections;\n if (mergedSelections) {\n const menu = {\n getPopupContainer,\n items: mergedSelections.map((selection, index) => {\n const {\n key,\n text,\n onSelect: onSelectionClick\n } = selection;\n return {\n key: key || index,\n onClick: () => {\n onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n },\n label: text\n };\n })\n };\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection-extra`\n }, /*#__PURE__*/React.createElement(Dropdown, {\n menu: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n const allDisabledData = flattedData.map((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = checkboxPropsMap.get(key) || {};\n return Object.assign({\n checked: keySet.has(key)\n }, checkboxProps);\n }).filter(_ref => {\n let {\n disabled\n } = _ref;\n return disabled;\n });\n const allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n const allDisabledAndChecked = allDisabled && allDisabledData.every(_ref2 => {\n let {\n checked\n } = _ref2;\n return checked;\n });\n const allDisabledSomeChecked = allDisabled && allDisabledData.some(_ref3 => {\n let {\n checked\n } = _ref3;\n return checked;\n });\n title = !hideSelectAll && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection`\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled,\n \"aria-label\": customizeSelections ? 'Custom selection' : 'Select all',\n skipGroup: true\n }), customizeSelections);\n }\n // Body Cell\n let renderCell;\n if (selectionType === 'radio') {\n renderCell = (_, record, index) => {\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n return {\n node: /*#__PURE__*/React.createElement(Radio, Object.assign({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: e => e.stopPropagation(),\n onChange: event => {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n })),\n checked\n };\n };\n } else {\n renderCell = (_, record, index) => {\n var _a;\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n const indeterminate = derivedHalfSelectedKeySet.has(key);\n const checkboxProps = checkboxPropsMap.get(key);\n let mergedIndeterminate;\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n process.env.NODE_ENV !== \"production\" ? warning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.') : void 0;\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n }\n // Record checked\n return {\n node: /*#__PURE__*/React.createElement(Checkbox, Object.assign({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n skipGroup: true,\n onClick: e => e.stopPropagation(),\n onChange: _ref4 => {\n let {\n nativeEvent\n } = _ref4;\n const {\n shiftKey\n } = nativeEvent;\n let startIndex = -1;\n let endIndex = -1;\n // Get range of this\n if (shiftKey && checkStrictly) {\n const pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some((recordKey, recordIndex) => {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n return false;\n });\n }\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n const rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n const changedKeys = [];\n if (checked) {\n rangeKeys.forEach(recordKey => {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.delete(recordKey);\n }\n });\n } else {\n rangeKeys.forEach(recordKey => {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n const keys = Array.from(keySet);\n onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(recordKey => getRecordByKey(recordKey)), changedKeys.map(recordKey => getRecordByKey(recordKey)));\n setSelectedKeys(keys, 'multiple');\n } else {\n // Single record selected\n const originCheckedKeys = derivedSelectedKeys;\n if (checkStrictly) {\n const checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n const result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n const {\n checkedKeys,\n halfCheckedKeys\n } = result;\n let nextCheckedKeys = checkedKeys;\n // If remove, we do it again to correction\n if (checked) {\n const tempKeySet = new Set(checkedKeys);\n tempKeySet.delete(key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n if (checked) {\n setLastSelectedKey(null);\n } else {\n setLastSelectedKey(key);\n }\n }\n })),\n checked\n };\n };\n }\n const renderSelectionCell = (_, record, index) => {\n const {\n node,\n checked\n } = renderCell(_, record, index);\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n return node;\n };\n // Insert selection column if not exist\n if (!cloneColumns.includes(SELECTION_COLUMN)) {\n // Always after expand icon\n if (cloneColumns.findIndex(col => {\n var _a;\n return ((_a = col[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN';\n }) === 0) {\n const [expandColumn, ...restColumns] = cloneColumns;\n cloneColumns = [expandColumn, SELECTION_COLUMN].concat(_toConsumableArray(restColumns));\n } else {\n // Normal insert at first column\n cloneColumns = [SELECTION_COLUMN].concat(_toConsumableArray(cloneColumns));\n }\n }\n // Deduplicate selection column\n const selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n process.env.NODE_ENV !== \"production\" ? warning(cloneColumns.filter(col => col === SELECTION_COLUMN).length <= 1, 'Table', 'Multiple `SELECTION_COLUMN` exist in `columns`.') : void 0;\n cloneColumns = cloneColumns.filter((column, index) => column !== SELECTION_COLUMN || index === selectionColumnIndex);\n // Fixed column logic\n const prevCol = cloneColumns[selectionColumnIndex - 1];\n const nextCol = cloneColumns[selectionColumnIndex + 1];\n let mergedFixed = fixed;\n if (mergedFixed === undefined) {\n if ((nextCol === null || nextCol === void 0 ? void 0 : nextCol.fixed) !== undefined) {\n mergedFixed = nextCol.fixed;\n } else if ((prevCol === null || prevCol === void 0 ? void 0 : prevCol.fixed) !== undefined) {\n mergedFixed = prevCol.fixed;\n }\n }\n if (mergedFixed && prevCol && ((_a = prevCol[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN' && prevCol.fixed === undefined) {\n prevCol.fixed = mergedFixed;\n }\n // Replace with real selection column\n const selectionColumn = {\n fixed: mergedFixed,\n width: selectionColWidth,\n className: `${prefixCls}-selection-column`,\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell,\n [INTERNAL_COL_DEFINE]: {\n className: `${prefixCls}-selection-col`\n }\n };\n return cloneColumns.map(col => col === SELECTION_COLUMN ? selectionColumn : col);\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n}","// This icon file is generated automatically.\nvar CaretDownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"outlined\" };\nexport default CaretDownOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretDownOutlined = function CaretDownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretDownOutlinedSvg\n }));\n};\nCaretDownOutlined.displayName = 'CaretDownOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretDownOutlined);","// This icon file is generated automatically.\nvar CaretUpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\" } }] }, \"name\": \"caret-up\", \"theme\": \"outlined\" };\nexport default CaretUpOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretUpOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretUpOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretUpOutlined = function CaretUpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretUpOutlinedSvg\n }));\n};\nCaretUpOutlined.displayName = 'CaretUpOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretUpOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nconst ASCEND = 'ascend';\nconst DESCEND = 'descend';\nfunction getMultiplePriority(column) {\n if (typeof column.sorter === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n}\nfunction getSortFunction(sorter) {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && typeof sorter === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n}\nfunction nextSortDirection(sortDirections, current) {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n}\nfunction collectSortStates(columns, init, pos) {\n let sortStates = [];\n function pushState(column, columnPos) {\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n }\n (columns || []).forEach((column, index) => {\n const columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n}\nfunction injectSorter(prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n return (columns || []).map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n let newColumn = column;\n if (newColumn.sorter) {\n const sortDirections = newColumn.sortDirections || defaultSortDirections;\n const showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n const columnKey = getColumnKey(newColumn, columnPos);\n const sorterState = sorterStates.find(_ref => {\n let {\n key\n } = _ref;\n return key === columnKey;\n });\n const sorterOrder = sorterState ? sorterState.sortOrder : null;\n const nextSortOrder = nextSortDirection(sortDirections, sorterOrder);\n const upNode = sortDirections.includes(ASCEND) && /*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(`${prefixCls}-column-sorter-up`, {\n active: sorterOrder === ASCEND\n }),\n role: \"presentation\"\n });\n const downNode = sortDirections.includes(DESCEND) && /*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(`${prefixCls}-column-sorter-down`, {\n active: sorterOrder === DESCEND\n }),\n role: \"presentation\"\n });\n const {\n cancelSort,\n triggerAsc,\n triggerDesc\n } = tableLocale || {};\n let sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n const tooltipProps = typeof showSorterTooltip === 'object' ? showSorterTooltip : {\n title: sortTip\n };\n newColumn = Object.assign(Object.assign({}, newColumn), {\n className: classNames(newColumn.className, {\n [`${prefixCls}-column-sort`]: sorterOrder\n }),\n title: renderProps => {\n const renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-column-sorters`\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-title`\n }, renderColumnTitle(column.title, renderProps)), /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-column-sorter`, {\n [`${prefixCls}-column-sorter-full`]: !!(upNode && downNode)\n })\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-sorter-inner`\n }, upNode, downNode)));\n return showSorterTooltip ? /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), renderSortTitle) : renderSortTitle;\n },\n onHeaderCell: col => {\n const cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n const originOnClick = cell.onClick;\n const originOKeyDown = cell.onKeyDown;\n cell.onClick = event => {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = event => {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n const renderTitle = safeColumnTitle(column.title, {});\n const displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sorterOrder) {\n cell['aria-sort'] = sorterOrder === 'ascend' ? 'ascending' : 'descending';\n } else {\n cell['aria-label'] = displayTitle || '';\n }\n cell.className = classNames(cell.className, `${prefixCls}-column-has-sorters`);\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n}\nfunction stateToInfo(sorterStates) {\n const {\n column,\n sortOrder\n } = sorterStates;\n return {\n column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n}\nfunction generateSorterInfo(sorterStates) {\n const list = sorterStates.filter(_ref2 => {\n let {\n sortOrder\n } = _ref2;\n return sortOrder;\n }).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (list.length === 0 && sorterStates.length) {\n return Object.assign(Object.assign({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n column: undefined\n });\n }\n if (list.length <= 1) {\n return list[0] || {};\n }\n return list;\n}\nexport function getSortData(data, sortStates, childrenColumnName) {\n const innerSorterStates = sortStates.slice().sort((a, b) => b.multiplePriority - a.multiplePriority);\n const cloneData = data.slice();\n const runningSorters = innerSorterStates.filter(_ref3 => {\n let {\n column: {\n sorter\n },\n sortOrder\n } = _ref3;\n return getSortFunction(sorter) && sortOrder;\n });\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort((record1, record2) => {\n for (let i = 0; i < runningSorters.length; i += 1) {\n const sorterState = runningSorters[i];\n const {\n column: {\n sorter\n },\n sortOrder\n } = sorterState;\n const compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n const compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(record => {\n const subRecords = record[childrenColumnName];\n if (subRecords) {\n return Object.assign(Object.assign({}, record), {\n [childrenColumnName]: getSortData(subRecords, sortStates, childrenColumnName)\n });\n }\n return record;\n });\n}\nexport default function useFilterSorter(_ref4) {\n let {\n prefixCls,\n mergedColumns,\n onSorterChange,\n sortDirections,\n tableLocale,\n showSorterTooltip\n } = _ref4;\n const [sortStates, setSortStates] = React.useState(collectSortStates(mergedColumns, true));\n const mergedSorterStates = React.useMemo(() => {\n let validate = true;\n const collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n return sortStates;\n }\n const validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(Object.assign(Object.assign({}, state), {\n sortOrder: null\n }));\n }\n }\n let multipleMode = null;\n collectedStates.forEach(state => {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n const columnTitleSorterProps = React.useMemo(() => {\n const sortColumns = mergedSorterStates.map(_ref5 => {\n let {\n column,\n sortOrder\n } = _ref5;\n return {\n column,\n order: sortOrder\n };\n });\n return {\n sortColumns,\n // Legacy\n sortColumn: sortColumns[0] && sortColumns[0].column,\n sortOrder: sortColumns[0] && sortColumns[0].order\n };\n }, [mergedSorterStates]);\n function triggerSorter(sortState) {\n let newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(_ref6 => {\n let {\n key\n } = _ref6;\n return key !== sortState.key;\n })), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n }\n const transformColumns = innerColumns => injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n const getSorters = () => generateSorterInfo(mergedSorterStates);\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}","import * as React from 'react';\nimport { renderColumnTitle } from '../util';\nfunction fillTitle(columns, columnTitleProps) {\n return columns.map(column => {\n const cloneColumn = Object.assign({}, column);\n cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n if ('children' in cloneColumn) {\n cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n }\n return cloneColumn;\n });\n}\nexport default function useTitleColumns(columnTitleProps) {\n const filledColumns = React.useCallback(columns => fillTitle(columns, columnTitleProps), [columnTitleProps]);\n return [filledColumns];\n}","import { genTable } from 'rc-table';\n/**\n * Same as `rc-table` but we modify trigger children update logic instead.\n */\nexport default genTable((prev, next) => {\n const {\n _renderTimes: prevRenderTimes\n } = prev;\n const {\n _renderTimes: nextRenderTimes\n } = next;\n return prevRenderTimes !== nextRenderTimes;\n});","const genBorderedStyle = token => {\n const {\n componentCls\n } = token;\n const tableBorder = `${token.lineWidth}px ${token.lineType} ${token.tableBorderColor}`;\n const getSizeBorderStyle = (size, paddingVertical, paddingHorizontal) => ({\n [`&${componentCls}-${size}`]: {\n [`> ${componentCls}-container`]: {\n [`> ${componentCls}-content, > ${componentCls}-body`]: {\n '> table > tbody > tr > td': {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `-${paddingVertical}px -${paddingHorizontal + token.lineWidth}px`\n }\n }\n }\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}${componentCls}-bordered`]: Object.assign(Object.assign(Object.assign({\n // ============================ Title =============================\n [`> ${componentCls}-title`]: {\n border: tableBorder,\n borderBottom: 0\n },\n // ============================ Content ============================\n [`> ${componentCls}-container`]: {\n borderInlineStart: tableBorder,\n [`\n > ${componentCls}-content,\n > ${componentCls}-header,\n > ${componentCls}-body,\n > ${componentCls}-summary\n `]: {\n '> table': {\n // ============================= Cell =============================\n [`\n > thead > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td\n `]: {\n borderInlineEnd: tableBorder\n },\n // ============================ Header ============================\n '> thead': {\n '> tr:not(:last-child) > th': {\n borderBottom: tableBorder\n },\n '> tr > th::before': {\n backgroundColor: 'transparent !important'\n }\n },\n // Fixed right should provides additional border\n [`\n > thead > tr,\n > tbody > tr,\n > tfoot > tr\n `]: {\n [`> ${componentCls}-cell-fix-right-first::after`]: {\n borderInlineEnd: tableBorder\n }\n },\n // ========================== Expandable ==========================\n '> tbody > tr > td': {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `-${token.tablePaddingVertical}px -${token.tablePaddingHorizontal + token.lineWidth}px`,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.lineWidth,\n bottom: 0,\n borderInlineEnd: tableBorder,\n content: '\"\"'\n }\n }\n }\n }\n },\n [`\n > ${componentCls}-content,\n > ${componentCls}-header\n `]: {\n '> table': {\n borderTop: tableBorder\n }\n }\n },\n // ============================ Scroll ============================\n [`&${componentCls}-scroll-horizontal`]: {\n [`> ${componentCls}-container > ${componentCls}-body`]: {\n '> table > tbody': {\n [`\n > tr${componentCls}-expanded-row,\n > tr${componentCls}-placeholder\n `]: {\n '> td': {\n borderInlineEnd: 0\n }\n }\n }\n }\n }\n }, getSizeBorderStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle)), getSizeBorderStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall)), {\n // ============================ Footer ============================\n [`> ${componentCls}-footer`]: {\n border: tableBorder,\n borderTop: 0\n }\n }),\n // ============================ Nested ============================\n [`${componentCls}-cell`]: {\n [`${componentCls}-container:first-child`]: {\n // :first-child to avoid the case when bordered and title is set\n borderTop: 0\n },\n // https://github.com/ant-design/ant-design/issues/35577\n '&-scrollbar:not([rowspan])': {\n boxShadow: `0 ${token.lineWidth}px 0 ${token.lineWidth}px ${token.tableHeaderBg}`\n }\n }\n }\n };\n};\nexport default genBorderedStyle;","import { textEllipsis } from '../../style';\nconst genEllipsisStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-cell-ellipsis`]: Object.assign(Object.assign({}, textEllipsis), {\n wordBreak: 'keep-all',\n // Fixed first or last should special process\n [`\n &${componentCls}-cell-fix-left-last,\n &${componentCls}-cell-fix-right-first\n `]: {\n overflow: 'visible',\n [`${componentCls}-cell-content`]: {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n },\n [`${componentCls}-column-title`]: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n wordBreak: 'keep-all'\n }\n })\n }\n };\n};\nexport default genEllipsisStyle;","// ========================= Placeholder ==========================\nconst genEmptyStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-tbody > tr${componentCls}-placeholder`]: {\n textAlign: 'center',\n color: token.colorTextDisabled,\n '&:hover > td': {\n background: token.colorBgContainer\n }\n }\n }\n };\n};\nexport default genEmptyStyle;","import { operationUnit } from '../../style';\nconst genExpandStyle = token => {\n const {\n componentCls,\n antCls,\n controlInteractiveSize: checkboxSize,\n motionDurationSlow,\n lineWidth,\n paddingXS,\n lineType,\n tableBorderColor,\n tableExpandIconBg,\n tableExpandColumnWidth,\n borderRadius,\n fontSize,\n fontSizeSM,\n lineHeight,\n tablePaddingVertical,\n tablePaddingHorizontal,\n tableExpandedRowBg,\n paddingXXS\n } = token;\n const halfInnerSize = checkboxSize / 2 - lineWidth;\n // must be odd number, unless it cannot align center\n const expandIconSize = halfInnerSize * 2 + lineWidth * 3;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n const expandIconLineOffset = paddingXXS - lineWidth;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-expand-icon-col`]: {\n width: tableExpandColumnWidth\n },\n [`${componentCls}-row-expand-icon-cell`]: {\n textAlign: 'center',\n [`${componentCls}-row-expand-icon`]: {\n display: 'inline-flex',\n float: 'none',\n verticalAlign: 'sub'\n }\n },\n [`${componentCls}-row-indent`]: {\n height: 1,\n float: 'left'\n },\n [`${componentCls}-row-expand-icon`]: Object.assign(Object.assign({}, operationUnit(token)), {\n position: 'relative',\n float: 'left',\n boxSizing: 'border-box',\n width: expandIconSize,\n height: expandIconSize,\n padding: 0,\n color: 'inherit',\n lineHeight: `${expandIconSize}px`,\n background: tableExpandIconBg,\n border: tableBorder,\n borderRadius,\n transform: `scale(${checkboxSize / expandIconSize})`,\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n [`&:focus, &:hover, &:active`]: {\n borderColor: 'currentcolor'\n },\n [`&::before, &::after`]: {\n position: 'absolute',\n background: 'currentcolor',\n transition: `transform ${motionDurationSlow} ease-out`,\n content: '\"\"'\n },\n '&::before': {\n top: halfInnerSize,\n insetInlineEnd: expandIconLineOffset,\n insetInlineStart: expandIconLineOffset,\n height: lineWidth\n },\n '&::after': {\n top: expandIconLineOffset,\n bottom: expandIconLineOffset,\n insetInlineStart: halfInnerSize,\n width: lineWidth,\n transform: 'rotate(90deg)'\n },\n // Motion effect\n '&-collapsed::before': {\n transform: 'rotate(-180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n },\n '&-spaced': {\n '&::before, &::after': {\n display: 'none',\n content: 'none'\n },\n background: 'transparent',\n border: 0,\n visibility: 'hidden'\n }\n }),\n [`${componentCls}-row-indent + ${componentCls}-row-expand-icon`]: {\n marginTop: (fontSize * lineHeight - lineWidth * 3) / 2 - Math.ceil((fontSizeSM * 1.4 - lineWidth * 3) / 2),\n marginInlineEnd: paddingXS\n },\n [`tr${componentCls}-expanded-row`]: {\n '&, &:hover': {\n '> td': {\n background: tableExpandedRowBg\n }\n },\n // https://github.com/ant-design/ant-design/issues/25573\n [`${antCls}-descriptions-view`]: {\n display: 'flex',\n table: {\n flex: 'auto',\n width: 'auto'\n }\n }\n },\n // With fixed\n [`${componentCls}-expanded-row-fixed`]: {\n position: 'relative',\n margin: `-${tablePaddingVertical}px -${tablePaddingHorizontal}px`,\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`\n }\n }\n };\n};\nexport default genExpandStyle;","// eslint-disable-next-line import/prefer-default-export\nexport const operationUnit = token => ({\n // FIXME: This use link but is a operation unit. Seems should be a colorPrimary.\n // And Typography use this to generate link style which should not do this.\n color: token.colorLink,\n textDecoration: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:focus, &:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n }\n});","import { resetComponent } from '../../style';\nconst genFilterStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n tableFilterDropdownWidth,\n tableFilterDropdownSearchWidth,\n paddingXXS,\n paddingXS,\n colorText,\n lineWidth,\n lineType,\n tableBorderColor,\n tableHeaderIconColor,\n fontSizeSM,\n tablePaddingHorizontal,\n borderRadius,\n motionDurationSlow,\n colorTextDescription,\n colorPrimary,\n tableHeaderFilterActiveBg,\n colorTextDisabled,\n tableFilterDropdownBg,\n tableFilterDropdownHeight,\n controlItemBgHover,\n controlItemBgActive,\n boxShadowSecondary\n } = token;\n const dropdownPrefixCls = `${antCls}-dropdown`;\n const tableFilterDropdownPrefixCls = `${componentCls}-filter-dropdown`;\n const treePrefixCls = `${antCls}-tree`;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-filter-column`]: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n [`${componentCls}-filter-trigger`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n marginBlock: -paddingXXS,\n marginInline: `${paddingXXS}px ${-tablePaddingHorizontal / 2}px`,\n padding: `0 ${paddingXXS}px`,\n color: tableHeaderIconColor,\n fontSize: fontSizeSM,\n borderRadius,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorTextDescription,\n background: tableHeaderFilterActiveBg\n },\n '&.active': {\n color: colorPrimary\n }\n }\n }\n }, {\n // Dropdown\n [`${antCls}-dropdown`]: {\n [tableFilterDropdownPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n minWidth: tableFilterDropdownWidth,\n backgroundColor: tableFilterDropdownBg,\n borderRadius,\n boxShadow: boxShadowSecondary,\n // Reset menu\n [`${dropdownPrefixCls}-menu`]: {\n // https://github.com/ant-design/ant-design/issues/4916\n // https://github.com/ant-design/ant-design/issues/19542\n maxHeight: tableFilterDropdownHeight,\n overflowX: 'hidden',\n border: 0,\n boxShadow: 'none',\n '&:empty::after': {\n display: 'block',\n padding: `${paddingXS}px 0`,\n color: colorTextDisabled,\n fontSize: fontSizeSM,\n textAlign: 'center',\n content: '\"Not Found\"'\n }\n },\n [`${tableFilterDropdownPrefixCls}-tree`]: {\n paddingBlock: `${paddingXS}px 0`,\n paddingInline: paddingXS,\n [treePrefixCls]: {\n padding: 0\n },\n [`${treePrefixCls}-treenode ${treePrefixCls}-node-content-wrapper:hover`]: {\n backgroundColor: controlItemBgHover\n },\n [`${treePrefixCls}-treenode-checkbox-checked ${treePrefixCls}-node-content-wrapper`]: {\n '&, &:hover': {\n backgroundColor: controlItemBgActive\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-search`]: {\n padding: paddingXS,\n borderBottom: tableBorder,\n '&-input': {\n input: {\n minWidth: tableFilterDropdownSearchWidth\n },\n [iconCls]: {\n color: colorTextDisabled\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-checkall`]: {\n width: '100%',\n marginBottom: paddingXXS,\n marginInlineStart: paddingXXS\n },\n // Operation\n [`${tableFilterDropdownPrefixCls}-btns`]: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: `${paddingXS - lineWidth}px ${paddingXS}px`,\n overflow: 'hidden',\n backgroundColor: 'inherit',\n borderTop: tableBorder\n }\n })\n }\n },\n // Dropdown Menu & SubMenu\n {\n // submenu of table filter dropdown\n [`${antCls}-dropdown ${tableFilterDropdownPrefixCls}, ${tableFilterDropdownPrefixCls}-submenu`]: {\n // Checkbox\n [`${antCls}-checkbox-wrapper + span`]: {\n paddingInlineStart: paddingXS,\n color: colorText\n },\n [`> ul`]: {\n maxHeight: 'calc(100vh - 130px)',\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n }];\n};\nexport default genFilterStyle;","const genFixedStyle = token => {\n const {\n componentCls,\n lineWidth,\n colorSplit,\n motionDurationSlow,\n zIndexTableFixed,\n tableBg,\n zIndexTableSticky\n } = token;\n const shadowColor = colorSplit;\n // Follow style is magic of shadow which should not follow token:\n return {\n [`${componentCls}-wrapper`]: {\n [`\n ${componentCls}-cell-fix-left,\n ${componentCls}-cell-fix-right\n `]: {\n position: 'sticky !important',\n zIndex: zIndexTableFixed,\n background: tableBg\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n position: 'absolute',\n top: 0,\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: -lineWidth,\n width: 30,\n transform: 'translateX(100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-cell-fix-left-all::after`]: {\n display: 'none'\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n position: 'absolute',\n top: 0,\n bottom: -lineWidth,\n left: {\n _skip_check_: true,\n value: 0\n },\n width: 30,\n transform: 'translateX(-100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-container`]: {\n '&::before, &::after': {\n position: 'absolute',\n top: 0,\n bottom: 0,\n zIndex: zIndexTableSticky + 1,\n width: 30,\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n '&::before': {\n insetInlineStart: 0\n },\n '&::after': {\n insetInlineEnd: 0\n }\n },\n [`${componentCls}-ping-left`]: {\n [`&:not(${componentCls}-has-fix-left) ${componentCls}-container`]: {\n position: 'relative',\n '&::before': {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n }\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n },\n [`${componentCls}-cell-fix-left-last::before`]: {\n backgroundColor: 'transparent !important'\n }\n },\n [`${componentCls}-ping-right`]: {\n [`&:not(${componentCls}-has-fix-right) ${componentCls}-container`]: {\n position: 'relative',\n '&::after': {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n }\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n }\n }\n }\n };\n};\nexport default genFixedStyle;","const genPaginationStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Pagination ==========================\n [`${componentCls}-pagination${antCls}-pagination`]: {\n margin: `${token.margin}px 0`\n },\n [`${componentCls}-pagination`]: {\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: token.paddingXS,\n '> *': {\n flex: 'none'\n },\n '&-left': {\n justifyContent: 'flex-start'\n },\n '&-center': {\n justifyContent: 'center'\n },\n '&-right': {\n justifyContent: 'flex-end'\n }\n }\n }\n };\n};\nexport default genPaginationStyle;","const genRadiusStyle = token => {\n const {\n componentCls,\n tableRadius\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [componentCls]: {\n // https://github.com/ant-design/ant-design/issues/39115#issuecomment-1362314574\n [`${componentCls}-title, ${componentCls}-header`]: {\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`\n },\n [`${componentCls}-title + ${componentCls}-container`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0,\n table: {\n borderRadius: 0,\n '> thead > tr:first-child': {\n 'th:first-child': {\n borderRadius: 0\n },\n 'th:last-child': {\n borderRadius: 0\n }\n }\n }\n },\n '&-container': {\n borderStartStartRadius: tableRadius,\n borderStartEndRadius: tableRadius,\n 'table > thead > tr:first-child': {\n '> *:first-child': {\n borderStartStartRadius: tableRadius\n },\n '> *:last-child': {\n borderStartEndRadius: tableRadius\n }\n }\n },\n '&-footer': {\n borderRadius: `0 0 ${tableRadius}px ${tableRadius}px`\n }\n }\n }\n };\n};\nexport default genRadiusStyle;","const genStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper-rtl`]: {\n direction: 'rtl',\n table: {\n direction: 'rtl'\n },\n [`${componentCls}-pagination-left`]: {\n justifyContent: 'flex-end'\n },\n [`${componentCls}-pagination-right`]: {\n justifyContent: 'flex-start'\n },\n [`${componentCls}-row-expand-icon`]: {\n '&::after': {\n transform: 'rotate(-90deg)'\n },\n '&-collapsed::before': {\n transform: 'rotate(180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n }\n },\n [`${componentCls}-container`]: {\n '&::before': {\n insetInlineStart: 'unset',\n insetInlineEnd: 0\n },\n '&::after': {\n insetInlineStart: 0,\n insetInlineEnd: 'unset'\n }\n }\n }\n };\n};\nexport default genStyle;","const genSelectionStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n fontSizeIcon,\n paddingXS,\n tableHeaderIconColor,\n tableHeaderIconColorHover\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Selections ==========================\n [`${componentCls}-selection-col`]: {\n width: token.tableSelectionColumnWidth\n },\n [`${componentCls}-bordered ${componentCls}-selection-col`]: {\n width: token.tableSelectionColumnWidth + paddingXS * 2\n },\n [`\n table tr th${componentCls}-selection-column,\n table tr td${componentCls}-selection-column\n `]: {\n paddingInlineEnd: token.paddingXS,\n paddingInlineStart: token.paddingXS,\n textAlign: 'center',\n [`${antCls}-radio-wrapper`]: {\n marginInlineEnd: 0\n }\n },\n [`table tr th${componentCls}-selection-column${componentCls}-cell-fix-left`]: {\n zIndex: token.zIndexTableFixed + 1\n },\n [`table tr th${componentCls}-selection-column::after`]: {\n backgroundColor: 'transparent !important'\n },\n [`${componentCls}-selection`]: {\n position: 'relative',\n display: 'inline-flex',\n flexDirection: 'column'\n },\n [`${componentCls}-selection-extra`]: {\n position: 'absolute',\n top: 0,\n zIndex: 1,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n marginInlineStart: '100%',\n paddingInlineStart: `${token.tablePaddingHorizontal / 4}px`,\n [iconCls]: {\n color: tableHeaderIconColor,\n fontSize: fontSizeIcon,\n verticalAlign: 'baseline',\n '&:hover': {\n color: tableHeaderIconColorHover\n }\n }\n }\n }\n };\n};\nexport default genSelectionStyle;","const genSizeStyle = token => {\n const {\n componentCls\n } = token;\n const getSizeStyle = (size, paddingVertical, paddingHorizontal, fontSize) => ({\n [`${componentCls}${componentCls}-${size}`]: {\n fontSize,\n [`\n ${componentCls}-title,\n ${componentCls}-footer,\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n padding: `${paddingVertical}px ${paddingHorizontal}px`\n },\n [`${componentCls}-filter-trigger`]: {\n marginInlineEnd: `-${paddingHorizontal / 2}px`\n },\n [`${componentCls}-expanded-row-fixed`]: {\n margin: `-${paddingVertical}px -${paddingHorizontal}px`\n },\n [`${componentCls}-tbody`]: {\n // ========================= Nest Table ===========================\n [`${componentCls}-wrapper:only-child ${componentCls}`]: {\n marginBlock: `-${paddingVertical}px`,\n marginInline: `${token.tableExpandColumnWidth - paddingHorizontal}px -${paddingHorizontal}px`\n }\n },\n // https://github.com/ant-design/ant-design/issues/35167\n [`${componentCls}-selection-column`]: {\n paddingInlineStart: `${paddingHorizontal / 4}px`\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, getSizeStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle, token.tableFontSizeMiddle)), getSizeStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall, token.tableFontSizeSmall))\n };\n};\nexport default genSizeStyle;","const genSorterStyle = token => {\n const {\n componentCls,\n marginXXS,\n fontSizeIcon,\n tableHeaderIconColor,\n tableHeaderIconColorHover\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-thead th${componentCls}-column-has-sorters`]: {\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n background: token.tableHeaderSortHoverBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n '&:focus-visible': {\n color: token.colorPrimary\n },\n // https://github.com/ant-design/ant-design/issues/30969\n [`\n &${componentCls}-cell-fix-left:hover,\n &${componentCls}-cell-fix-right:hover\n `]: {\n background: token.tableFixedHeaderSortActiveBg\n }\n },\n [`${componentCls}-thead th${componentCls}-column-sort`]: {\n background: token.tableHeaderSortBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n [`td${componentCls}-column-sort`]: {\n background: token.tableBodySortBg\n },\n [`${componentCls}-column-title`]: {\n position: 'relative',\n zIndex: 1,\n flex: 1\n },\n [`${componentCls}-column-sorters`]: {\n display: 'flex',\n flex: 'auto',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&::after': {\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n content: '\"\"'\n }\n },\n [`${componentCls}-column-sorter`]: {\n marginInlineStart: marginXXS,\n color: tableHeaderIconColor,\n fontSize: 0,\n transition: `color ${token.motionDurationSlow}`,\n '&-inner': {\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n '&-up, &-down': {\n fontSize: fontSizeIcon,\n '&.active': {\n color: token.colorPrimary\n }\n },\n [`${componentCls}-column-sorter-up + ${componentCls}-column-sorter-down`]: {\n marginTop: '-0.3em'\n }\n },\n [`${componentCls}-column-sorters:hover ${componentCls}-column-sorter`]: {\n color: tableHeaderIconColorHover\n }\n }\n };\n};\nexport default genSorterStyle;","const genStickyStyle = token => {\n const {\n componentCls,\n opacityLoading,\n tableScrollThumbBg,\n tableScrollThumbBgHover,\n tableScrollThumbSize,\n tableScrollBg,\n zIndexTableSticky\n } = token;\n const tableBorder = `${token.lineWidth}px ${token.lineType} ${token.tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-sticky`]: {\n '&-holder': {\n position: 'sticky',\n zIndex: zIndexTableSticky,\n background: token.colorBgContainer\n },\n '&-scroll': {\n position: 'sticky',\n bottom: 0,\n height: `${tableScrollThumbSize}px !important`,\n zIndex: zIndexTableSticky,\n display: 'flex',\n alignItems: 'center',\n background: tableScrollBg,\n borderTop: tableBorder,\n opacity: opacityLoading,\n '&:hover': {\n transformOrigin: 'center bottom'\n },\n // fake scrollbar style of sticky\n '&-bar': {\n height: tableScrollThumbSize,\n backgroundColor: tableScrollThumbBg,\n borderRadius: 100,\n transition: `all ${token.motionDurationSlow}, transform none`,\n position: 'absolute',\n bottom: 0,\n '&:hover, &-active': {\n backgroundColor: tableScrollThumbBgHover\n }\n }\n }\n }\n }\n };\n};\nexport default genStickyStyle;","const genSummaryStyle = token => {\n const {\n componentCls,\n lineWidth,\n tableBorderColor\n } = token;\n const tableBorder = `${lineWidth}px ${token.lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-summary`]: {\n position: 'relative',\n zIndex: token.zIndexTableFixed,\n background: token.tableBg,\n '> tr': {\n '> th, > td': {\n borderBottom: tableBorder\n }\n }\n },\n [`div${componentCls}-summary`]: {\n boxShadow: `0 -${lineWidth}px 0 ${tableBorderColor}`\n }\n }\n };\n};\nexport default genSummaryStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genBorderedStyle from './bordered';\nimport genEllipsisStyle from './ellipsis';\nimport genEmptyStyle from './empty';\nimport genExpandStyle from './expand';\nimport genFilterStyle from './filter';\nimport genFixedStyle from './fixed';\nimport genPaginationStyle from './pagination';\nimport genRadiusStyle from './radius';\nimport genRtlStyle from './rtl';\nimport genSelectionStyle from './selection';\nimport genSizeStyle from './size';\nimport genSorterStyle from './sorter';\nimport genStickyStyle from './sticky';\nimport genSummaryStyle from './summary';\nimport { clearFix, resetComponent } from '../../style';\nconst genTableStyle = token => {\n const {\n componentCls,\n fontWeightStrong,\n tablePaddingVertical,\n tablePaddingHorizontal,\n lineWidth,\n lineType,\n tableBorderColor,\n tableFontSize,\n tableBg,\n tableRadius,\n tableHeaderTextColor,\n motionDurationMid,\n tableHeaderBg,\n tableHeaderCellSplitColor,\n tableRowHoverBg,\n tableSelectedRowBg,\n tableSelectedRowHoverBg,\n tableFooterTextColor,\n tableFooterBg,\n paddingContentVerticalLG,\n wireframe\n } = token;\n const tableBorder = `${lineWidth}px ${lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({\n clear: 'both',\n maxWidth: '100%'\n }, clearFix()), {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n fontSize: tableFontSize,\n background: tableBg,\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`\n }),\n // https://github.com/ant-design/ant-design/issues/17611\n table: {\n width: '100%',\n textAlign: 'start',\n borderRadius: `${tableRadius}px ${tableRadius}px 0 0`,\n borderCollapse: 'separate',\n borderSpacing: 0\n },\n // ============================= Cell =============================\n [`\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n position: 'relative',\n padding: `${paddingContentVerticalLG}px ${tablePaddingHorizontal}px`,\n overflowWrap: 'break-word'\n },\n // ============================ Title =============================\n [`${componentCls}-title`]: {\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`\n },\n // ============================ Header ============================\n [`${componentCls}-thead`]: {\n [`\n > tr > th,\n > tr > td\n `]: {\n position: 'relative',\n color: tableHeaderTextColor,\n fontWeight: fontWeightStrong,\n textAlign: 'start',\n background: tableHeaderBg,\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid} ease`,\n \"&[colspan]:not([colspan='1'])\": {\n textAlign: 'center'\n },\n [`&:not(:last-child):not(${componentCls}-selection-column):not(${componentCls}-row-expand-icon-cell):not([colspan])::before`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n width: 1,\n height: '1.6em',\n backgroundColor: tableHeaderCellSplitColor,\n transform: 'translateY(-50%)',\n transition: `background-color ${motionDurationMid}`,\n content: '\"\"'\n }\n },\n '> tr:not(:last-child) > th[colspan]': {\n borderBottom: 0\n }\n },\n // ============================ Body ============================\n // Borderless Table has unique hover style, which would be implemented with `borderTop`.\n [`${componentCls}:not(${componentCls}-bordered)`]: {\n [`${componentCls}-tbody`]: {\n '> tr': {\n '> td': {\n borderTop: tableBorder,\n borderBottom: 'transparent'\n },\n '&:last-child > td': {\n borderBottom: tableBorder\n },\n [`&:first-child > td,\n &${componentCls}-measure-row + tr > td`]: {\n borderTop: 'none',\n borderTopColor: 'transparent'\n }\n }\n }\n },\n // Bordered Table remains simple `borderBottom`.\n // Ref issue: https://github.com/ant-design/ant-design/issues/38724\n [`${componentCls}${componentCls}-bordered`]: {\n [`${componentCls}-tbody`]: {\n '> tr': {\n '> td': {\n borderBottom: tableBorder\n }\n }\n }\n },\n [`${componentCls}-tbody`]: {\n '> tr': {\n '> td': {\n transition: `background ${motionDurationMid}, border-color ${motionDurationMid}`,\n // ========================= Nest Table ===========================\n [`\n > ${componentCls}-wrapper:only-child,\n > ${componentCls}-expanded-row-fixed > ${componentCls}-wrapper:only-child\n `]: {\n [componentCls]: {\n marginBlock: `-${tablePaddingVertical}px`,\n marginInline: `${token.tableExpandColumnWidth - tablePaddingHorizontal}px -${tablePaddingHorizontal}px`,\n [`${componentCls}-tbody > tr:last-child > td`]: {\n borderBottom: 0,\n '&:first-child, &:last-child': {\n borderRadius: 0\n }\n }\n }\n }\n },\n [`\n &${componentCls}-row:hover > td,\n > td${componentCls}-cell-row-hover\n `]: {\n background: tableRowHoverBg\n },\n [`&${componentCls}-row-selected`]: {\n '> td': {\n background: tableSelectedRowBg\n },\n '&:hover > td': {\n background: tableSelectedRowHoverBg\n }\n }\n }\n },\n [`${componentCls}:not(${componentCls}-bordered) ${componentCls}-tbody > tr`]: wireframe ? undefined : {\n [`&${componentCls}-row:hover, &${componentCls}-row${componentCls}-row-selected`]: {\n [`+ tr${componentCls}-row > td`]: {\n borderTopColor: 'transparent'\n }\n },\n [`&${componentCls}-row:last-child:hover > td,\n &${componentCls}-row${componentCls}-row-selected:last-child > td`]: {\n borderBottomColor: 'transparent'\n },\n [`\n &${componentCls}-row:hover > td,\n > td${componentCls}-cell-row-hover,\n &${componentCls}-row${componentCls}-row-selected > td\n `]: {\n borderTopColor: 'transparent',\n '&:first-child': {\n borderStartStartRadius: tableRadius,\n borderEndStartRadius: tableRadius\n },\n '&:last-child': {\n borderStartEndRadius: tableRadius,\n borderEndEndRadius: tableRadius\n }\n }\n },\n // ============================ Footer ============================\n [`${componentCls}-footer`]: {\n padding: `${tablePaddingVertical}px ${tablePaddingHorizontal}px`,\n color: tableFooterTextColor,\n background: tableFooterBg\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Table', token => {\n const {\n controlItemBgActive,\n controlItemBgActiveHover,\n colorTextPlaceholder,\n colorTextHeading,\n colorSplit,\n colorBorderSecondary,\n fontSize,\n padding,\n paddingXS,\n paddingSM,\n controlHeight,\n colorFillAlter,\n colorIcon,\n colorIconHover,\n opacityLoading,\n colorBgContainer,\n borderRadiusLG,\n colorFillContent,\n colorFillSecondary,\n controlInteractiveSize: checkboxSize\n } = token;\n const baseColorAction = new TinyColor(colorIcon);\n const baseColorActionHover = new TinyColor(colorIconHover);\n const tableSelectedRowBg = controlItemBgActive;\n const zIndexTableFixed = 2;\n const colorFillSecondarySolid = new TinyColor(colorFillSecondary).onBackground(colorBgContainer).toHexString();\n const colorFillContentSolid = new TinyColor(colorFillContent).onBackground(colorBgContainer).toHexString();\n const colorFillAlterSolid = new TinyColor(colorFillAlter).onBackground(colorBgContainer).toHexString();\n const tableToken = mergeToken(token, {\n tableFontSize: fontSize,\n tableBg: colorBgContainer,\n tableRadius: borderRadiusLG,\n tablePaddingVertical: padding,\n tablePaddingHorizontal: padding,\n tablePaddingVerticalMiddle: paddingSM,\n tablePaddingHorizontalMiddle: paddingXS,\n tablePaddingVerticalSmall: paddingXS,\n tablePaddingHorizontalSmall: paddingXS,\n tableBorderColor: colorBorderSecondary,\n tableHeaderTextColor: colorTextHeading,\n tableHeaderBg: colorFillAlterSolid,\n tableFooterTextColor: colorTextHeading,\n tableFooterBg: colorFillAlterSolid,\n tableHeaderCellSplitColor: colorBorderSecondary,\n tableHeaderSortBg: colorFillSecondarySolid,\n tableHeaderSortHoverBg: colorFillContentSolid,\n tableHeaderIconColor: baseColorAction.clone().setAlpha(baseColorAction.getAlpha() * opacityLoading).toRgbString(),\n tableHeaderIconColorHover: baseColorActionHover.clone().setAlpha(baseColorActionHover.getAlpha() * opacityLoading).toRgbString(),\n tableBodySortBg: colorFillAlterSolid,\n tableFixedHeaderSortActiveBg: colorFillSecondarySolid,\n tableHeaderFilterActiveBg: colorFillContent,\n tableFilterDropdownBg: colorBgContainer,\n tableRowHoverBg: colorFillAlterSolid,\n tableSelectedRowBg,\n tableSelectedRowHoverBg: controlItemBgActiveHover,\n zIndexTableFixed,\n zIndexTableSticky: zIndexTableFixed + 1,\n tableFontSizeMiddle: fontSize,\n tableFontSizeSmall: fontSize,\n tableSelectionColumnWidth: controlHeight,\n tableExpandIconBg: colorBgContainer,\n tableExpandColumnWidth: checkboxSize + 2 * token.padding,\n tableExpandedRowBg: colorFillAlter,\n // Dropdown\n tableFilterDropdownWidth: 120,\n tableFilterDropdownHeight: 264,\n tableFilterDropdownSearchWidth: 140,\n // Virtual Scroll Bar\n tableScrollThumbSize: 8,\n tableScrollThumbBg: colorTextPlaceholder,\n tableScrollThumbBgHover: colorTextHeading,\n tableScrollBg: colorSplit\n });\n return [genTableStyle(tableToken), genPaginationStyle(tableToken), genSummaryStyle(tableToken), genSorterStyle(tableToken), genFilterStyle(tableToken), genBorderedStyle(tableToken), genRadiusStyle(tableToken), genExpandStyle(tableToken), genSummaryStyle(tableToken), genEmptyStyle(tableToken), genSelectionStyle(tableToken), genFixedStyle(tableToken), genStickyStyle(tableToken), genEllipsisStyle(tableToken), genSizeStyle(tableToken), genRtlStyle(tableToken)];\n});","import classNames from 'classnames';\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport { INTERNAL_HOOKS } from \"rc-table/es/Table\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider/context';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport SizeContext from '../config-provider/SizeContext';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport defaultLocale from '../locale/en_US';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport scrollTo from '../_util/scrollTo';\nimport warning from '../_util/warning';\nimport renderExpandIcon from './ExpandIcon';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useSelection from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useTitleColumns from './hooks/useTitleColumns';\nimport RcTable from './RcTable';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nfunction InternalTable(props, ref) {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n size: customizeSize,\n bordered,\n dropdownPrefixCls: customizeDropdownPrefixCls,\n dataSource,\n pagination,\n rowSelection,\n rowKey = 'key',\n rowClassName,\n columns,\n children,\n childrenColumnName: legacyChildrenColumnName,\n onChange,\n getPopupContainer,\n loading,\n expandIcon,\n expandable,\n expandedRowRender,\n expandIconColumnIndex,\n indentSize,\n scroll,\n sortDirections,\n locale,\n showSorterTooltip = true\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof rowKey === 'function' && rowKey.length > 1), 'Table', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.') : void 0;\n }\n const baseColumns = React.useMemo(() => columns || convertChildrenToColumns(children), [columns, children]);\n const needResponsive = React.useMemo(() => baseColumns.some(col => col.responsive), [baseColumns]);\n const screens = useBreakpoint(needResponsive);\n const mergedColumns = React.useMemo(() => {\n const matched = new Set(Object.keys(screens).filter(m => screens[m]));\n return baseColumns.filter(c => !c.responsive || c.responsive.some(r => matched.has(r)));\n }, [baseColumns, screens]);\n const tableProps = omit(props, ['className', 'style', 'columns']);\n const size = React.useContext(SizeContext);\n const {\n locale: contextLocale = defaultLocale,\n direction,\n renderEmpty,\n getPrefixCls\n } = React.useContext(ConfigContext);\n const mergedSize = customizeSize || size;\n const tableLocale = Object.assign(Object.assign({}, contextLocale.Table), locale);\n const rawData = dataSource || EMPTY_LIST;\n const prefixCls = getPrefixCls('table', customizePrefixCls);\n const dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n const mergedExpandable = Object.assign({\n childrenColumnName: legacyChildrenColumnName,\n expandIconColumnIndex\n }, expandable);\n const {\n childrenColumnName = 'children'\n } = mergedExpandable;\n const expandType = React.useMemo(() => {\n if (rawData.some(item => item === null || item === void 0 ? void 0 : item[childrenColumnName])) {\n return 'nest';\n }\n if (expandedRowRender || expandable && expandable.expandedRowRender) {\n return 'row';\n }\n return null;\n }, [rawData]);\n const internalRefs = {\n body: React.useRef()\n };\n // ============================ RowKey ============================\n const getRowKey = React.useMemo(() => {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return record => record === null || record === void 0 ? void 0 : record[rowKey];\n }, [rowKey]);\n const [getRecordByKey] = useLazyKVMap(rawData, childrenColumnName, getRowKey);\n // ============================ Events =============================\n const changeEventInfo = {};\n const triggerOnChange = function (info, action) {\n let reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const changeInfo = Object.assign(Object.assign({}, changeEventInfo), info);\n if (reset) {\n changeEventInfo.resetPagination();\n // Reset event param\n if (changeInfo.pagination.current) {\n changeInfo.pagination.current = 1;\n }\n // Trigger pagination events\n if (pagination && pagination.onChange) {\n pagination.onChange(1, changeInfo.pagination.pageSize);\n }\n }\n if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n scrollTo(0, {\n getContainer: () => internalRefs.body.current\n });\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates),\n action\n });\n };\n /**\n * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n * state out and then put it back to title render. Move these code into `hooks` but still too\n * complex. We should provides Table props like `sorter` & `filter` to handle control in next big\n * version.\n */\n // ============================ Sorter =============================\n const onSorterChange = (sorter, sorterStates) => {\n triggerOnChange({\n sorter,\n sorterStates\n }, 'sort', false);\n };\n const [transformSorterColumns, sortStates, sorterTitleProps, getSorters] = useSorter({\n prefixCls,\n mergedColumns,\n onSorterChange,\n sortDirections: sortDirections || ['ascend', 'descend'],\n tableLocale,\n showSorterTooltip\n });\n const sortedData = React.useMemo(() => getSortData(rawData, sortStates, childrenColumnName), [rawData, sortStates]);\n changeEventInfo.sorter = getSorters();\n changeEventInfo.sorterStates = sortStates;\n // ============================ Filter ============================\n const onFilterChange = (filters, filterStates) => {\n triggerOnChange({\n filters,\n filterStates\n }, 'filter', true);\n };\n const [transformFilterColumns, filterStates, filters] = useFilter({\n prefixCls,\n locale: tableLocale,\n dropdownPrefixCls,\n mergedColumns,\n onFilterChange,\n getPopupContainer\n });\n const mergedData = getFilterData(sortedData, filterStates);\n changeEventInfo.filters = filters;\n changeEventInfo.filterStates = filterStates;\n // ============================ Column ============================\n const columnTitleProps = React.useMemo(() => {\n const mergedFilters = {};\n Object.keys(filters).forEach(filterKey => {\n if (filters[filterKey] !== null) {\n mergedFilters[filterKey] = filters[filterKey];\n }\n });\n return Object.assign(Object.assign({}, sorterTitleProps), {\n filters: mergedFilters\n });\n }, [sorterTitleProps, filters]);\n const [transformTitleColumns] = useTitleColumns(columnTitleProps);\n // ========================== Pagination ==========================\n const onPaginationChange = (current, pageSize) => {\n triggerOnChange({\n pagination: Object.assign(Object.assign({}, changeEventInfo.pagination), {\n current,\n pageSize\n })\n }, 'paginate');\n };\n const [mergedPagination, resetPagination] = usePagination(mergedData.length, pagination, onPaginationChange);\n changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(mergedPagination, pagination);\n changeEventInfo.resetPagination = resetPagination;\n // ============================= Data =============================\n const pageData = React.useMemo(() => {\n if (pagination === false || !mergedPagination.pageSize) {\n return mergedData;\n }\n const {\n current = 1,\n total,\n pageSize = DEFAULT_PAGE_SIZE\n } = mergedPagination;\n process.env.NODE_ENV !== \"production\" ? warning(current > 0, 'Table', '`current` should be positive number.') : void 0;\n // Dynamic table data\n if (mergedData.length < total) {\n if (mergedData.length > pageSize) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.') : void 0;\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }\n return mergedData;\n }\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }, [!!pagination, mergedData, mergedPagination && mergedPagination.current, mergedPagination && mergedPagination.pageSize, mergedPagination && mergedPagination.total]);\n // ========================== Selections ==========================\n const [transformSelectionColumns, selectedKeySet] = useSelection(rowSelection, {\n prefixCls,\n data: mergedData,\n pageData,\n getRowKey,\n getRecordByKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer\n });\n const internalRowClassName = (record, index, indent) => {\n let mergedRowClassName;\n if (typeof rowClassName === 'function') {\n mergedRowClassName = classNames(rowClassName(record, index, indent));\n } else {\n mergedRowClassName = classNames(rowClassName);\n }\n return classNames({\n [`${prefixCls}-row-selected`]: selectedKeySet.has(getRowKey(record, index))\n }, mergedRowClassName);\n };\n // ========================== Expandable ==========================\n // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon;\n // Customize expandable icon\n mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale);\n // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n mergedExpandable.expandIconColumnIndex -= 1;\n }\n // Indent size\n if (typeof mergedExpandable.indentSize !== 'number') {\n mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n }\n // ============================ Render ============================\n const transformColumns = React.useCallback(innerColumns => transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns)))), [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n let topPaginationNode;\n let bottomPaginationNode;\n if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n let paginationSize;\n if (mergedPagination.size) {\n paginationSize = mergedPagination.size;\n } else {\n paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n }\n const renderPagination = position => /*#__PURE__*/React.createElement(Pagination, Object.assign({}, mergedPagination, {\n className: classNames(`${prefixCls}-pagination ${prefixCls}-pagination-${position}`, mergedPagination.className),\n size: paginationSize\n }));\n const defaultPosition = direction === 'rtl' ? 'left' : 'right';\n const {\n position\n } = mergedPagination;\n if (position !== null && Array.isArray(position)) {\n const topPos = position.find(p => p.includes('top'));\n const bottomPos = position.find(p => p.includes('bottom'));\n const isDisable = position.every(p => `${p}` === 'none');\n if (!topPos && !bottomPos && !isDisable) {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n if (topPos) {\n topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n }\n if (bottomPos) {\n bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n }\n } else {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n }\n // >>>>>>>>> Spinning\n let spinProps;\n if (typeof loading === 'boolean') {\n spinProps = {\n spinning: loading\n };\n } else if (typeof loading === 'object') {\n spinProps = Object.assign({\n spinning: true\n }, loading);\n }\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const wrapperClassNames = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl'\n }, className, hashId);\n const emptyText = locale && locale.emptyText || (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Table')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Table\"\n });\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: wrapperClassNames,\n style: style\n }, /*#__PURE__*/React.createElement(Spin, Object.assign({\n spinning: false\n }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(RcTable, Object.assign({}, tableProps, {\n columns: mergedColumns,\n direction: direction,\n expandable: mergedExpandable,\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-middle`]: mergedSize === 'middle',\n [`${prefixCls}-small`]: mergedSize === 'small',\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-empty`]: rawData.length === 0\n }),\n data: pageData,\n rowKey: getRowKey,\n rowClassName: internalRowClassName,\n emptyText: emptyText,\n // Internal\n internalHooks: INTERNAL_HOOKS,\n internalRefs: internalRefs,\n transformColumns: transformColumns\n })), bottomPaginationNode)));\n}\nexport default /*#__PURE__*/React.forwardRef(InternalTable);","import * as React from 'react';\nexport default function useLazyKVMap(data, childrenColumnName, getRowKey) {\n const mapCacheRef = React.useRef({});\n function getRecordByKey(key) {\n if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n const kvMap = new Map();\n /* eslint-disable no-inner-declarations */\n function dig(records) {\n records.forEach((record, index) => {\n const rowKey = getRowKey(record, index);\n kvMap.set(rowKey, record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || []);\n }\n });\n }\n /* eslint-enable */\n dig(data);\n mapCacheRef.current = {\n data,\n childrenColumnName,\n kvMap,\n getRowKey\n };\n }\n return mapCacheRef.current.kvMap.get(key);\n }\n return [getRecordByKey];\n}","import * as React from 'react';\nimport { Summary, EXPAND_COLUMN } from 'rc-table';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport InternalTable from './InternalTable';\nimport { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nfunction Table(props, ref) {\n const renderTimesRef = React.useRef(0);\n renderTimesRef.current += 1;\n return /*#__PURE__*/React.createElement(InternalTable, Object.assign({}, props, {\n ref: ref,\n _renderTimes: renderTimesRef.current\n }));\n}\nconst ForwardTable = /*#__PURE__*/React.forwardRef(Table);\nForwardTable.SELECTION_COLUMN = SELECTION_COLUMN;\nForwardTable.EXPAND_COLUMN = EXPAND_COLUMN;\nForwardTable.SELECTION_ALL = SELECTION_ALL;\nForwardTable.SELECTION_INVERT = SELECTION_INVERT;\nForwardTable.SELECTION_NONE = SELECTION_NONE;\nForwardTable.Column = Column;\nForwardTable.ColumnGroup = ColumnGroup;\nForwardTable.Summary = Summary;\nexport default ForwardTable;","import Table from './Table';\nexport default Table;","import { createContext } from 'react';\nconst RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Row-Shared ==============================\nconst genGridRowStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n display: 'flex',\n flexFlow: 'row wrap',\n minWidth: 0,\n '&::before, &::after': {\n display: 'flex'\n },\n '&-no-wrap': {\n flexWrap: 'nowrap'\n },\n // The origin of the X-axis\n '&-start': {\n justifyContent: 'flex-start'\n },\n // The center of the X-axis\n '&-center': {\n justifyContent: 'center'\n },\n // The opposite of the X-axis\n '&-end': {\n justifyContent: 'flex-end'\n },\n '&-space-between': {\n justifyContent: 'space-between'\n },\n '&-space-around ': {\n justifyContent: 'space-around'\n },\n // Align at the top\n '&-top': {\n alignItems: 'flex-start'\n },\n // Align at the center\n '&-middle': {\n alignItems: 'center'\n },\n '&-bottom': {\n alignItems: 'flex-end'\n }\n }\n };\n};\n// ============================== Col-Shared ==============================\nconst genGridColStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n position: 'relative',\n maxWidth: '100%',\n // Prevent columns from collapsing when empty\n minHeight: 1\n }\n };\n};\nconst genLoopGridColumnsStyle = (token, sizeCls) => {\n const {\n componentCls,\n gridColumns\n } = token;\n const gridColumnsStyle = {};\n for (let i = gridColumns; i >= 0; i--) {\n if (i === 0) {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'none'\n };\n gridColumnsStyle[`${componentCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineEnd: 0\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: 0\n };\n } else {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'block',\n flex: `0 0 ${i / gridColumns * 100}%`,\n maxWidth: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: i\n };\n }\n }\n return gridColumnsStyle;\n};\nconst genGridStyle = (token, sizeCls) => genLoopGridColumnsStyle(token, sizeCls);\nconst genGridMediaStyle = (token, screenSize, sizeCls) => ({\n [`@media (min-width: ${screenSize}px)`]: Object.assign({}, genGridStyle(token, sizeCls))\n});\n// ============================== Export ==============================\nexport const useRowStyle = genComponentStyleHook('Grid', token => [genGridRowStyle(token)]);\nexport const useColStyle = genComponentStyleHook('Grid', token => {\n const gridToken = mergeToken(token, {\n gridColumns: 24 // Row is divided into 24 parts in Grid\n });\n\n const gridMediaSizesMap = {\n '-sm': gridToken.screenSMMin,\n '-md': gridToken.screenMDMin,\n '-lg': gridToken.screenLGMin,\n '-xl': gridToken.screenXLMin,\n '-xxl': gridToken.screenXXLMin\n };\n return [genGridColStyle(gridToken), genGridStyle(gridToken, ''), genGridStyle(gridToken, '-xs'), Object.keys(gridMediaSizesMap).map(key => genGridMediaStyle(gridToken, gridMediaSizesMap[key], key)).reduce((pre, cur) => Object.assign(Object.assign({}, pre), cur), {})];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport useResponsiveObserver, { responsiveArray } from '../_util/responsiveObserver';\nimport RowContext from './RowContext';\nimport { useRowStyle } from './style';\nconst RowAligns = ['top', 'middle', 'bottom', 'stretch'];\nconst RowJustify = ['start', 'end', 'center', 'space-around', 'space-between', 'space-evenly'];\nfunction useMergePropByScreen(oriProp, screen) {\n const [prop, setProp] = React.useState(typeof oriProp === 'string' ? oriProp : '');\n const clacMergeAlignOrJustify = () => {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (typeof oriProp !== 'object') {\n return;\n }\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) continue;\n const curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(() => {\n clacMergeAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nconst Row = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n justify,\n align,\n className,\n style,\n children,\n gutter = 0,\n wrap\n } = props,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [screens, setScreens] = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n });\n // to save screens info when responsiveObserve callback had been call\n const [curScreens, setCurScreens] = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n });\n // ================================== calc reponsive data ==================================\n const mergeAlign = useMergePropByScreen(align, curScreens);\n const mergeJustify = useMergePropByScreen(justify, curScreens);\n const supportFlexGap = useFlexGapSupport();\n const gutterRef = React.useRef(gutter);\n const responsiveObserver = useResponsiveObserver();\n // ================================== Effect ==================================\n React.useEffect(() => {\n const token = responsiveObserver.subscribe(screen => {\n setCurScreens(screen);\n const currentGutter = gutterRef.current || 0;\n if (!Array.isArray(currentGutter) && typeof currentGutter === 'object' || Array.isArray(currentGutter) && (typeof currentGutter[0] === 'object' || typeof currentGutter[1] === 'object')) {\n setScreens(screen);\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n // ================================== Render ==================================\n const getGutter = () => {\n const results = [undefined, undefined];\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n const prefixCls = getPrefixCls('row', customizePrefixCls);\n const [wrapSSR, hashId] = useRowStyle(prefixCls);\n const gutters = getGutter();\n const classes = classNames(prefixCls, {\n [`${prefixCls}-no-wrap`]: wrap === false,\n [`${prefixCls}-${mergeJustify}`]: mergeJustify,\n [`${prefixCls}-${mergeAlign}`]: mergeAlign,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n // Add gutter related style\n const rowStyle = {};\n const horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n const verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n [, rowStyle.rowGap] = gutters;\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n const [gutterH, gutterV] = gutters;\n const rowContext = React.useMemo(() => ({\n gutter: [gutterH, gutterV],\n wrap,\n supportFlexGap\n }), [gutterH, gutterV, wrap, supportFlexGap]);\n return wrapSSR( /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes,\n style: Object.assign(Object.assign({}, rowStyle), style),\n ref: ref\n }), children)));\n});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","import { Row } from '../grid';\nexport default Row;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nimport { useColStyle } from './style';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return `${flex} ${flex} auto`;\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n return flex;\n}\nconst sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst Col = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n gutter,\n wrap,\n supportFlexGap\n } = React.useContext(RowContext);\n const {\n prefixCls: customizePrefixCls,\n span,\n order,\n offset,\n push,\n pull,\n className,\n children,\n flex,\n style\n } = props,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n const prefixCls = getPrefixCls('col', customizePrefixCls);\n const [wrapSSR, hashId] = useColStyle(prefixCls);\n let sizeClassObj = {};\n sizes.forEach(size => {\n let sizeProps = {};\n const propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (typeof propSize === 'object') {\n sizeProps = propSize || {};\n }\n delete others[size];\n sizeClassObj = Object.assign(Object.assign({}, sizeClassObj), {\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset || sizeProps.offset === 0,\n [`${prefixCls}-${size}-push-${sizeProps.push}`]: sizeProps.push || sizeProps.push === 0,\n [`${prefixCls}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull || sizeProps.pull === 0,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n });\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${span}`]: span !== undefined,\n [`${prefixCls}-order-${order}`]: order,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-push-${push}`]: push,\n [`${prefixCls}-pull-${pull}`]: pull\n }, className, sizeClassObj, hashId);\n const mergedStyle = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n const horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n // Vertical gutter use padding when gap not support\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n const verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n style: Object.assign(Object.assign({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","import { Col } from '../grid';\nexport default Col;","import React from 'react';\r\n\r\nconst Label = ({ title, required, className }: { title: string; required?: boolean; className?: string }) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Label;\r\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { useCallback, useEffect, useRef } from 'react';\nexport default function useMountedState() {\n var mountedRef = useRef(false);\n var get = useCallback(function () { return mountedRef.current; }, []);\n useEffect(function () {\n mountedRef.current = true;\n return function () {\n mountedRef.current = false;\n };\n }, []);\n return get;\n}\n","import { IDataResponse, ISearchParam } from \"../../../models\";\r\nimport configServices from \"../../../utils/configServices\";\r\nimport { BannerInterface, ISearchBanner } from \"../banner.model\";\r\n\r\nexport const createBanner = async (body: BannerInterface) => {\r\n const result = await configServices.postService(\"banner\", {\r\n ...body,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteBanner = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `banner/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateBanner = async (id: number, param: any) => {\r\n const result = await configServices.patchService(\r\n `banner/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getBanner = async (id: number) => {\r\n const result = await configServices.getService(\r\n `banner/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getBanners = async (filter?: ISearchBanner) => {\r\n const result = await configServices.getService(\r\n `banner`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgKebab(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n fill: \"currentColor\",\n className: \"bi bi-three-dots-vertical\",\n viewBox: \"0 0 16 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKebab);\nexport default __webpack_public_path__ + \"static/media/kebab.08ce77ab1e288b83545238e1b87a7e74.svg\";\nexport { ForwardRef as ReactComponent };","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { IBannerState } from \"./propState\";\r\nimport {\r\n createBanner,\r\n deleteBanner,\r\n updateBanner,\r\n getBanners,\r\n getBanner,\r\n} from \"./services\";\r\nimport { BannerInterface, ISearchBanner } from \"./banner.model\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: IBannerState = {\r\n data: [],\r\n currentPage: 1,\r\n detail: {\r\n id: 1,\r\n name: \"\",\r\n sliders: [\r\n {\r\n content: '',\r\n description: '',\r\n imgage: '',\r\n path: '',\r\n title: ''\r\n }\r\n ],\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getBannersAction = createAsyncThunk(\r\n \"banner\",\r\n async (filter: ISearchBanner, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getBanners(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getBannerDetail = createAsyncThunk(\r\n \"detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getBanner(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createBannerAction = createAsyncThunk(\r\n \"banner/createBannerAction\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const banner = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createBanner(banner);\r\n } else {\r\n await updateBanner(payload.id, banner);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteBannerAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteBanner(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getBannersAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const bannerSlice = createSlice({\r\n name: \"banner\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: IBannerState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: IBannerState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.detail = action.payload;\r\n },\r\n setStatusModalAction: (\r\n state: IBannerState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: BannerInterface | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setPostAction, setStatusModalAction, setDetailAction } =\r\n bannerSlice.actions;\r\n\r\nexport default bannerSlice.reducer;\r\n","import { Button, Card, Col, Input, Row } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchBanner } from \"../banner.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getBannersAction } from \"../slice\";\r\n\r\nconst defaultState: ISearchBanner = {\r\n name: \"\",\r\n};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [bannerState, bannerStateFn] = useAsyncFn(\r\n async (params: ISearchBanner) => {\r\n return dispatch(getBannersAction(params) as any);\r\n }\r\n );\r\n\r\n const debounceLoadBanner = useMemo(\r\n () =>\r\n debounce((query: ISearchBanner) => {\r\n return bannerStateFn(query);\r\n }, 500),\r\n [bannerStateFn]\r\n );\r\n const [state, setState] = useState(_.cloneDeep(defaultState));\r\n //#endregion declare\r\n const onChangeState = (query: ISearchBanner) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadBanner(query);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\nEditOutlined.displayName = 'EditOutlined';\nexport default /*#__PURE__*/React.forwardRef(EditOutlined);","// This icon file is generated automatically.\nvar DeleteOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\" } }] }, \"name\": \"delete\", \"theme\": \"outlined\" };\nexport default DeleteOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DeleteOutlinedSvg from \"@ant-design/icons-svg/es/asn/DeleteOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DeleteOutlined = function DeleteOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DeleteOutlinedSvg\n }));\n};\nDeleteOutlined.displayName = 'DeleteOutlined';\nexport default /*#__PURE__*/React.forwardRef(DeleteOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleOutlinedSvg\n }));\n};\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\n/* eslint-disable no-underscore-dangle */\n\n/* eslint-disable react/prop-types */\nimport * as React from 'react';\nimport classnames from 'classnames';\nvar PanelContent = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classnames;\n\n var prefixCls = props.prefixCls,\n forceRender = props.forceRender,\n className = props.className,\n style = props.style,\n children = props.children,\n isActive = props.isActive,\n role = props.role;\n\n var _React$useState = React.useState(isActive || forceRender),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n rendered = _React$useState2[0],\n setRendered = _React$useState2[1];\n\n React.useEffect(function () {\n if (forceRender || isActive) {\n setRendered(true);\n }\n }, [forceRender, isActive]);\n\n if (!rendered) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: classnames(\"\".concat(prefixCls, \"-content\"), (_classnames = {}, _defineProperty(_classnames, \"\".concat(prefixCls, \"-content-active\"), isActive), _defineProperty(_classnames, \"\".concat(prefixCls, \"-content-inactive\"), !isActive), _classnames), className),\n style: style,\n role: role\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content-box\")\n }, children));\n});\nPanelContent.displayName = 'PanelContent';\nexport default PanelContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"className\", \"id\", \"style\", \"prefixCls\", \"headerClass\", \"children\", \"isActive\", \"destroyInactivePanel\", \"accordion\", \"forceRender\", \"openMotion\", \"extra\", \"collapsible\"];\n\n/* eslint-disable react/prop-types */\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport shallowEqual from 'shallowequal';\nimport PanelContent from './PanelContent';\n\nvar CollapsePanel = /*#__PURE__*/function (_React$Component) {\n _inherits(CollapsePanel, _React$Component);\n\n var _super = _createSuper(CollapsePanel);\n\n function CollapsePanel() {\n var _this;\n\n _classCallCheck(this, CollapsePanel);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _this.onItemClick = function () {\n var _this$props = _this.props,\n onItemClick = _this$props.onItemClick,\n panelKey = _this$props.panelKey;\n\n if (typeof onItemClick === 'function') {\n onItemClick(panelKey);\n }\n };\n\n _this.handleKeyPress = function (e) {\n if (e.key === 'Enter' || e.keyCode === 13 || e.which === 13) {\n _this.onItemClick();\n }\n };\n\n _this.renderIcon = function () {\n var _this$props2 = _this.props,\n showArrow = _this$props2.showArrow,\n expandIcon = _this$props2.expandIcon,\n prefixCls = _this$props2.prefixCls,\n collapsible = _this$props2.collapsible;\n\n if (!showArrow) {\n return null;\n }\n\n var iconNode = typeof expandIcon === 'function' ? expandIcon(_this.props) : /*#__PURE__*/React.createElement(\"i\", {\n className: \"arrow\"\n });\n return iconNode && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-expand-icon\"),\n onClick: collapsible === 'header' || collapsible === 'icon' ? _this.onItemClick : null\n }, iconNode);\n };\n\n _this.renderTitle = function () {\n var _this$props3 = _this.props,\n header = _this$props3.header,\n prefixCls = _this$props3.prefixCls,\n collapsible = _this$props3.collapsible;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-header-text\"),\n onClick: collapsible === 'header' ? _this.onItemClick : null\n }, header);\n };\n\n return _this;\n }\n\n _createClass(CollapsePanel, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !shallowEqual(this.props, nextProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames, _classNames2;\n\n var _this$props4 = this.props,\n className = _this$props4.className,\n id = _this$props4.id,\n style = _this$props4.style,\n prefixCls = _this$props4.prefixCls,\n headerClass = _this$props4.headerClass,\n children = _this$props4.children,\n isActive = _this$props4.isActive,\n destroyInactivePanel = _this$props4.destroyInactivePanel,\n accordion = _this$props4.accordion,\n forceRender = _this$props4.forceRender,\n openMotion = _this$props4.openMotion,\n extra = _this$props4.extra,\n collapsible = _this$props4.collapsible,\n rest = _objectWithoutProperties(_this$props4, _excluded);\n\n var disabled = collapsible === 'disabled';\n var collapsibleHeader = collapsible === 'header';\n var collapsibleIcon = collapsible === 'icon';\n var itemCls = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-item\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-active\"), isActive), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-disabled\"), disabled), _classNames), className);\n var headerCls = classNames(\"\".concat(prefixCls, \"-header\"), (_classNames2 = {}, _defineProperty(_classNames2, headerClass, headerClass), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-header-collapsible-only\"), collapsibleHeader), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-icon-collapsible-only\"), collapsibleIcon), _classNames2));\n /** header 节点属性 */\n\n var headerProps = {\n className: headerCls,\n 'aria-expanded': isActive,\n 'aria-disabled': disabled,\n onKeyPress: this.handleKeyPress\n };\n\n if (!collapsibleHeader && !collapsibleIcon) {\n headerProps.onClick = this.onItemClick;\n headerProps.role = accordion ? 'tab' : 'button';\n headerProps.tabIndex = disabled ? -1 : 0;\n }\n\n var ifExtraExist = extra !== null && extra !== undefined && typeof extra !== 'boolean'; // https://github.com/ant-design/ant-design/pull/37419#issuecomment-1238812797\n\n delete rest.header;\n delete rest.panelKey;\n delete rest.onItemClick;\n delete rest.showArrow;\n delete rest.expandIcon;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n className: itemCls,\n style: style,\n id: id\n }), /*#__PURE__*/React.createElement(\"div\", headerProps, this.renderIcon(), this.renderTitle(), ifExtraExist && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: isActive,\n leavedClassName: \"\".concat(prefixCls, \"-content-hidden\")\n }, openMotion, {\n forceRender: forceRender,\n removeOnLeave: destroyInactivePanel\n }), function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(PanelContent, {\n ref: ref,\n prefixCls: prefixCls,\n className: motionClassName,\n style: motionStyle,\n isActive: isActive,\n forceRender: forceRender,\n role: accordion ? 'tabpanel' : null\n }, children);\n }));\n }\n }]);\n\n return CollapsePanel;\n}(React.Component);\n\nCollapsePanel.defaultProps = {\n showArrow: true,\n isActive: false,\n onItemClick: function onItemClick() {},\n headerClass: '',\n forceRender: false\n};\nexport default CollapsePanel;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/prop-types */\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport shallowEqual from 'shallowequal';\nimport CollapsePanel from './Panel';\n\nfunction getActiveKeysArray(activeKey) {\n var currentActiveKey = activeKey;\n\n if (!Array.isArray(currentActiveKey)) {\n var activeKeyType = _typeof(currentActiveKey);\n\n currentActiveKey = activeKeyType === 'number' || activeKeyType === 'string' ? [currentActiveKey] : [];\n }\n\n return currentActiveKey.map(function (key) {\n return String(key);\n });\n}\n\nvar Collapse = /*#__PURE__*/function (_React$Component) {\n _inherits(Collapse, _React$Component);\n\n var _super = _createSuper(Collapse);\n\n function Collapse(_props) {\n var _this;\n\n _classCallCheck(this, Collapse);\n\n _this = _super.call(this, _props);\n\n _this.onClickItem = function (key) {\n var activeKey = _this.state.activeKey;\n\n if (_this.props.accordion) {\n activeKey = activeKey[0] === key ? [] : [key];\n } else {\n activeKey = _toConsumableArray(activeKey);\n var index = activeKey.indexOf(key);\n var isActive = index > -1;\n\n if (isActive) {\n // remove active state\n activeKey.splice(index, 1);\n } else {\n activeKey.push(key);\n }\n }\n\n _this.setActiveKey(activeKey);\n };\n\n _this.getNewChild = function (child, index) {\n if (!child) return null;\n var activeKey = _this.state.activeKey;\n var _this$props = _this.props,\n prefixCls = _this$props.prefixCls,\n openMotion = _this$props.openMotion,\n accordion = _this$props.accordion,\n rootDestroyInactivePanel = _this$props.destroyInactivePanel,\n expandIcon = _this$props.expandIcon,\n collapsible = _this$props.collapsible; // If there is no key provide, use the panel order as default key\n\n var key = child.key || String(index);\n var _child$props = child.props,\n header = _child$props.header,\n headerClass = _child$props.headerClass,\n destroyInactivePanel = _child$props.destroyInactivePanel,\n childCollapsible = _child$props.collapsible;\n var isActive = false;\n\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n\n var mergeCollapsible = childCollapsible !== null && childCollapsible !== void 0 ? childCollapsible : collapsible;\n var props = {\n key: key,\n panelKey: key,\n header: header,\n headerClass: headerClass,\n isActive: isActive,\n prefixCls: prefixCls,\n destroyInactivePanel: destroyInactivePanel !== null && destroyInactivePanel !== void 0 ? destroyInactivePanel : rootDestroyInactivePanel,\n openMotion: openMotion,\n accordion: accordion,\n children: child.props.children,\n onItemClick: mergeCollapsible === 'disabled' ? null : _this.onClickItem,\n expandIcon: expandIcon,\n collapsible: mergeCollapsible\n }; // https://github.com/ant-design/ant-design/issues/20479\n\n if (typeof child.type === 'string') {\n return child;\n }\n\n Object.keys(props).forEach(function (propName) {\n if (typeof props[propName] === 'undefined') {\n delete props[propName];\n }\n });\n return /*#__PURE__*/React.cloneElement(child, props);\n };\n\n _this.getItems = function () {\n var children = _this.props.children;\n return toArray(children).map(_this.getNewChild);\n };\n\n _this.setActiveKey = function (activeKey) {\n if (!('activeKey' in _this.props)) {\n _this.setState({\n activeKey: activeKey\n });\n }\n\n _this.props.onChange(_this.props.accordion ? activeKey[0] : activeKey);\n };\n\n var _activeKey = _props.activeKey,\n defaultActiveKey = _props.defaultActiveKey;\n var currentActiveKey = defaultActiveKey;\n\n if ('activeKey' in _props) {\n currentActiveKey = _activeKey;\n }\n\n _this.state = {\n activeKey: getActiveKeysArray(currentActiveKey)\n };\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n style = _this$props2.style,\n accordion = _this$props2.accordion;\n var collapseClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, className, !!className), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: collapseClassName,\n style: style,\n role: accordion ? 'tablist' : null\n }, this.getItems());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n var newState = {};\n\n if ('activeKey' in nextProps) {\n newState.activeKey = getActiveKeysArray(nextProps.activeKey);\n }\n\n return newState;\n }\n }]);\n\n return Collapse;\n}(React.Component);\n\nCollapse.defaultProps = {\n prefixCls: 'rc-collapse',\n onChange: function onChange() {},\n accordion: false,\n destroyInactivePanel: false\n};\nCollapse.Panel = CollapsePanel;\nexport default Collapse;","import Collapse from './Collapse';\nexport default Collapse;\nvar Panel = Collapse.Panel;\nexport { Panel };","import classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nconst CollapsePanel = props => {\n process.env.NODE_ENV !== \"production\" ? warning(!('disabled' in props), 'Collapse.Panel', '`disabled` is deprecated. Please use `collapsible=\"disabled\"` instead.') : void 0;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className = '',\n showArrow = true\n } = props;\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const collapsePanelClassName = classNames({\n [`${prefixCls}-no-arrow`]: !showArrow\n }, className);\n return /*#__PURE__*/React.createElement(RcCollapse.Panel, Object.assign({}, props, {\n prefixCls: prefixCls,\n className: collapsePanelClassName\n }));\n};\nexport default CollapsePanel;","import { genCollapseMotion } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent, resetIcon } from '../../style';\nexport const genBaseStyle = token => {\n const {\n componentCls,\n collapseContentBg,\n padding,\n collapseContentPaddingHorizontal,\n collapseHeaderBg,\n collapseHeaderPadding,\n collapsePanelBorderRadius,\n lineWidth,\n lineType,\n colorBorder,\n colorText,\n colorTextHeading,\n colorTextDisabled,\n fontSize,\n lineHeight,\n marginSM,\n paddingSM,\n motionDurationSlow,\n fontSizeIcon\n } = token;\n const borderBase = `${lineWidth}px ${lineType} ${colorBorder}`;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n backgroundColor: collapseHeaderBg,\n border: borderBase,\n borderBottom: 0,\n borderRadius: `${collapsePanelBorderRadius}px`,\n [`&-rtl`]: {\n direction: 'rtl'\n },\n [`& > ${componentCls}-item`]: {\n borderBottom: borderBase,\n [`&:last-child`]: {\n [`\n &,\n & > ${componentCls}-header`]: {\n borderRadius: `0 0 ${collapsePanelBorderRadius}px ${collapsePanelBorderRadius}px`\n }\n },\n [`> ${componentCls}-header`]: {\n position: 'relative',\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n padding: collapseHeaderPadding,\n color: colorTextHeading,\n lineHeight,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}, visibility 0s`,\n [`> ${componentCls}-header-text`]: {\n flex: 'auto'\n },\n '&:focus': {\n outline: 'none'\n },\n // >>>>> Arrow\n [`${componentCls}-expand-icon`]: {\n height: fontSize * lineHeight,\n display: 'flex',\n alignItems: 'center',\n paddingInlineEnd: marginSM\n },\n [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n fontSize: fontSizeIcon,\n svg: {\n transition: `transform ${motionDurationSlow}`\n }\n }),\n // >>>>> Text\n [`${componentCls}-header-text`]: {\n marginInlineEnd: 'auto'\n }\n },\n [`${componentCls}-header-collapsible-only`]: {\n cursor: 'default',\n [`${componentCls}-header-text`]: {\n flex: 'none',\n cursor: 'pointer'\n }\n },\n [`${componentCls}-icon-collapsible-only`]: {\n cursor: 'default',\n [`${componentCls}-expand-icon`]: {\n cursor: 'pointer'\n }\n },\n [`&${componentCls}-no-arrow`]: {\n [`> ${componentCls}-header`]: {\n paddingInlineStart: paddingSM\n }\n }\n },\n [`${componentCls}-content`]: {\n color: colorText,\n backgroundColor: collapseContentBg,\n borderTop: borderBase,\n [`& > ${componentCls}-content-box`]: {\n padding: `${padding}px ${collapseContentPaddingHorizontal}px`\n },\n [`&-hidden`]: {\n display: 'none'\n }\n },\n [`${componentCls}-item:last-child`]: {\n [`> ${componentCls}-content`]: {\n borderRadius: `0 0 ${collapsePanelBorderRadius}px ${collapsePanelBorderRadius}px`\n }\n },\n [`& ${componentCls}-item-disabled > ${componentCls}-header`]: {\n [`\n &,\n & > .arrow\n `]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // ========================== Icon Position ==========================\n [`&${componentCls}-icon-position-end`]: {\n [`& > ${componentCls}-item`]: {\n [`> ${componentCls}-header`]: {\n [`${componentCls}-expand-icon`]: {\n order: 1,\n paddingInlineEnd: 0,\n paddingInlineStart: marginSM\n }\n }\n }\n }\n })\n };\n};\nconst genArrowStyle = token => {\n const {\n componentCls\n } = token;\n const fixedSelector = `> ${componentCls}-item > ${componentCls}-header ${componentCls}-arrow svg`;\n return {\n [`${componentCls}-rtl`]: {\n [fixedSelector]: {\n transform: `rotate(180deg)`\n }\n }\n };\n};\nconst genBorderlessStyle = token => {\n const {\n componentCls,\n collapseHeaderBg,\n paddingXXS,\n colorBorder\n } = token;\n return {\n [`${componentCls}-borderless`]: {\n backgroundColor: collapseHeaderBg,\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: `1px solid ${colorBorder}`\n },\n [`\n > ${componentCls}-item:last-child,\n > ${componentCls}-item:last-child ${componentCls}-header\n `]: {\n borderRadius: 0\n },\n [`> ${componentCls}-item:last-child`]: {\n borderBottom: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content`]: {\n backgroundColor: 'transparent',\n borderTop: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content > ${componentCls}-content-box`]: {\n paddingTop: paddingXXS\n }\n }\n };\n};\nconst genGhostStyle = token => {\n const {\n componentCls,\n paddingSM\n } = token;\n return {\n [`${componentCls}-ghost`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: 0,\n [`> ${componentCls}-content`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-content-box`]: {\n paddingBlock: paddingSM\n }\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Collapse', token => {\n const collapseToken = mergeToken(token, {\n collapseContentBg: token.colorBgContainer,\n collapseHeaderBg: token.colorFillAlter,\n collapseHeaderPadding: `${token.paddingSM}px ${token.padding}px`,\n collapsePanelBorderRadius: token.borderRadiusLG,\n collapseContentPaddingHorizontal: 16 // Fixed value\n });\n\n return [genBaseStyle(collapseToken), genBorderlessStyle(collapseToken), genGhostStyle(collapseToken), genArrowStyle(collapseToken), genCollapseMotion(collapseToken)];\n});","import RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport CollapsePanel from './CollapsePanel';\nimport useStyle from './style';\nconst Collapse = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className = '',\n bordered = true,\n ghost,\n expandIconPosition = 'start'\n } = props;\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // Warning if use legacy type `expandIconPosition`\n process.env.NODE_ENV !== \"production\" ? warning(expandIconPosition !== 'left' && expandIconPosition !== 'right', 'Collapse', '`expandIconPosition` with `left` or `right` is deprecated. Please use `start` or `end` instead.') : void 0;\n // Align with logic position\n const mergedExpandIconPosition = React.useMemo(() => {\n if (expandIconPosition === 'left') {\n return 'start';\n }\n return expandIconPosition === 'right' ? 'end' : expandIconPosition;\n }, [expandIconPosition]);\n const renderExpandIcon = function () {\n let panelProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n expandIcon\n } = props;\n const icon = expandIcon ? expandIcon(panelProps) : /*#__PURE__*/React.createElement(RightOutlined, {\n rotate: panelProps.isActive ? 90 : undefined\n });\n return cloneElement(icon, () => ({\n className: classNames(icon.props.className, `${prefixCls}-arrow`)\n }));\n };\n const collapseClassName = classNames(`${prefixCls}-icon-position-${mergedExpandIconPosition}`, {\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-ghost`]: !!ghost\n }, className, hashId);\n const openMotion = Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false,\n leavedClassName: `${prefixCls}-content-hidden`\n });\n const getItems = () => {\n const {\n children\n } = props;\n return toArray(children).map((child, index) => {\n var _a;\n if ((_a = child.props) === null || _a === void 0 ? void 0 : _a.disabled) {\n const key = child.key || String(index);\n const {\n disabled,\n collapsible\n } = child.props;\n const childProps = Object.assign(Object.assign({}, omit(child.props, ['disabled'])), {\n key,\n collapsible: collapsible !== null && collapsible !== void 0 ? collapsible : disabled ? 'disabled' : undefined\n });\n return cloneElement(child, childProps);\n }\n return child;\n });\n };\n return wrapSSR( /*#__PURE__*/React.createElement(RcCollapse, Object.assign({\n openMotion: openMotion\n }, props, {\n expandIcon: renderExpandIcon,\n prefixCls: prefixCls,\n className: collapseClassName\n }), getItems()));\n};\nCollapse.Panel = CollapsePanel;\nif (process.env.NODE_ENV !== 'production') {\n Collapse.displayName = 'Collapse';\n}\nexport default Collapse;","import Collapse from './Collapse';\nexport default Collapse;","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretRightOutlined);","import React, { useState } from \"react\";\r\nimport { Collapse } from \"antd\";\r\nimport { CaretRightOutlined } from \"@ant-design/icons\";\r\nconst { Panel } = Collapse;\r\n// import \"./styles.scss\";\r\n\r\nconst Search = (props: any) => {\r\n const [activeKey, setActiveKey] = useState([]);\r\n const onChange = (key: string | string[]) => {\r\n if (activeKey.length) setActiveKey([\"1\"]);\r\n else setActiveKey([]);\r\n };\r\n return (\r\n <>\r\n }\r\n bordered={false}\r\n >\r\n Tìm kiếm }\r\n key=\"1\"\r\n className=\"bg-white pb-0 vmc-search\"\r\n >\r\n {props.children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Search;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { deleteBannerAction, getBannersAction } from \"./slice\";\r\nimport { BannerInterface, SliderInterface } from \"./banner.model\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst BannerPage = () => {\r\n const dispatch = useDispatch();\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isBannerCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.BANNER_CREATE\r\n );\r\n const isBannerUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.BANNER_UPDATE\r\n );\r\n const isBannerList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.BANNER_LIST\r\n );\r\n const isBannerDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.BANNER_DELETE\r\n );\r\n\r\n const [state, setState] = useState({\r\n data: [],\r\n currentPage: 1,\r\n });\r\n const getImgDetail = (sliders: SliderInterface[]) => {\r\n if (sliders && Array.isArray(sliders)) {\r\n const slide = sliders.find((s) => s.imgage);\r\n if (slide) return slide.imgage;\r\n }\r\n return \"\";\r\n };\r\n const header: any = [\r\n {\r\n title: \"ID\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n width: 50,\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Tên trình chiếu\",\r\n key: \"name\",\r\n dataIndex: \"name\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Ảnh bìa\",\r\n key: \"icon\",\r\n align: \"center\",\r\n render: (_text: string, record: BannerInterface, index: number) => {\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: BannerInterface, index: number) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n width: 50,\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: BannerInterface, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const bannerData = useAppSelector((state) => state.screens.banner);\r\n const menu = (item: BannerInterface, index: number) => {\r\n return (\r\n \r\n {isBannerUpdate && (\r\n }\r\n // onClick={_editItem(item)}\r\n >\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isBannerDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isBannerList && dispatch(getBannersAction({}) as any);\r\n }, [dispatch, isBannerList]);\r\n\r\n useEffect(() => {\r\n if (bannerData.data) {\r\n setState(bannerData);\r\n // console.log(\"state banner :>> \", bannerData);\r\n }\r\n }, [bannerData]);\r\n\r\n const _confirmDelete = (item: BannerInterface) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa Banner không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteBannerAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Trình chiếu

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isBannerCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isBannerList && (\r\n \r\n \r\n \r\n )}\r\n\r\n {/* */}\r\n {isBannerList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default BannerPage;\r\n","// This icon file is generated automatically.\nvar MinusCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"minus-circle\", \"theme\": \"outlined\" };\nexport default MinusCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MinusCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar MinusCircleOutlined = function MinusCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MinusCircleOutlinedSvg\n }));\n};\nMinusCircleOutlined.displayName = 'MinusCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(MinusCircleOutlined);","import * as React from 'react';\nexport default function useDebounce(value) {\n const [cacheValue, setCacheValue] = React.useState(value);\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n setCacheValue(value);\n }, value.length ? 0 : 10);\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n return cacheValue;\n}","const genFormValidateMotionStyle = token => {\n const {\n componentCls\n } = token;\n const helpCls = `${componentCls}-show-help`;\n const helpItemCls = `${componentCls}-show-help-item`;\n return {\n [helpCls]: {\n // Explain holder\n transition: `opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&-appear, &-enter': {\n opacity: 0,\n '&-active': {\n opacity: 1\n }\n },\n '&-leave': {\n opacity: 1,\n '&-active': {\n opacity: 0\n }\n },\n // Explain\n [helpItemCls]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationSlow} ${token.motionEaseInOut},\n opacity ${token.motionDurationSlow} ${token.motionEaseInOut},\n transform ${token.motionDurationSlow} ${token.motionEaseInOut} !important`,\n [`&${helpItemCls}-appear, &${helpItemCls}-enter`]: {\n transform: `translateY(-5px)`,\n opacity: 0,\n [`&-active`]: {\n transform: 'translateY(0)',\n opacity: 1\n }\n },\n [`&${helpItemCls}-leave-active`]: {\n transform: `translateY(-5px)`\n }\n }\n }\n };\n};\nexport default genFormValidateMotionStyle;","import { genCollapseMotion, zoomIn } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nimport genFormValidateMotionStyle from './explain';\nconst resetForm = token => ({\n legend: {\n display: 'block',\n width: '100%',\n marginBottom: token.marginLG,\n padding: 0,\n color: token.colorTextDescription,\n fontSize: token.fontSizeLG,\n lineHeight: 'inherit',\n border: 0,\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n label: {\n fontSize: token.fontSize\n },\n 'input[type=\"search\"]': {\n boxSizing: 'border-box'\n },\n // Position radios and checkboxes better\n 'input[type=\"radio\"], input[type=\"checkbox\"]': {\n lineHeight: 'normal'\n },\n 'input[type=\"file\"]': {\n display: 'block'\n },\n // Make range inputs behave like textual form controls\n 'input[type=\"range\"]': {\n display: 'block',\n width: '100%'\n },\n // Make multiple select elements height not fixed\n 'select[multiple], select[size]': {\n height: 'auto'\n },\n // Focus for file, radio, and checkbox\n [`input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus`]: {\n outline: 0,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`\n },\n // Adjust output element\n output: {\n display: 'block',\n paddingTop: 15,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n }\n});\nconst genFormSize = (token, height) => {\n const {\n formItemCls\n } = token;\n return {\n [formItemCls]: {\n [`${formItemCls}-label > label`]: {\n height\n },\n [`${formItemCls}-control-input`]: {\n minHeight: height\n }\n }\n };\n};\nconst genFormStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [token.componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), resetForm(token)), {\n [`${componentCls}-text`]: {\n display: 'inline-block',\n paddingInlineEnd: token.paddingSM\n },\n // ================================================================\n // = Size =\n // ================================================================\n '&-small': Object.assign({}, genFormSize(token, token.controlHeightSM)),\n '&-large': Object.assign({}, genFormSize(token, token.controlHeightLG))\n })\n };\n};\nconst genFormItemStyle = token => {\n const {\n formItemCls,\n iconCls,\n componentCls,\n rootPrefixCls\n } = token;\n return {\n [formItemCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n marginBottom: token.marginLG,\n verticalAlign: 'top',\n '&-with-help': {\n transition: 'none'\n },\n [`&-hidden,\n &-hidden.${rootPrefixCls}-row`]: {\n // https://github.com/ant-design/ant-design/issues/26141\n display: 'none'\n },\n '&-has-warning': {\n [`${formItemCls}-split`]: {\n color: token.colorError\n }\n },\n '&-has-error': {\n [`${formItemCls}-split`]: {\n color: token.colorWarning\n }\n },\n // ==============================================================\n // = Label =\n // ==============================================================\n [`${formItemCls}-label`]: {\n display: 'inline-block',\n flexGrow: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textAlign: 'end',\n verticalAlign: 'middle',\n '&-left': {\n textAlign: 'start'\n },\n '&-wrap': {\n overflow: 'unset',\n lineHeight: `${token.lineHeight} - 0.25em`,\n whiteSpace: 'unset'\n },\n '> label': {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n height: token.controlHeight,\n color: token.colorTextHeading,\n fontSize: token.fontSize,\n [`> ${iconCls}`]: {\n fontSize: token.fontSize,\n verticalAlign: 'top'\n },\n // Required mark\n [`&${formItemCls}-required:not(${formItemCls}-required-mark-optional)::before`]: {\n display: 'inline-block',\n marginInlineEnd: token.marginXXS,\n color: token.colorError,\n fontSize: token.fontSize,\n fontFamily: 'SimSun, sans-serif',\n lineHeight: 1,\n content: '\"*\"',\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-optional`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXXS,\n color: token.colorTextDescription,\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-tooltip`]: {\n color: token.colorTextDescription,\n cursor: 'help',\n writingMode: 'horizontal-tb',\n marginInlineStart: token.marginXXS\n },\n '&::after': {\n content: '\":\"',\n position: 'relative',\n marginBlock: 0,\n marginInlineStart: token.marginXXS / 2,\n marginInlineEnd: token.marginXS\n },\n [`&${formItemCls}-no-colon::after`]: {\n content: '\" \"'\n }\n }\n },\n // ==============================================================\n // = Input =\n // ==============================================================\n [`${formItemCls}-control`]: {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n [`&:first-child:not([class^=\"'${rootPrefixCls}-col-'\"]):not([class*=\"' ${rootPrefixCls}-col-'\"])`]: {\n width: '100%'\n },\n '&-input': {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n minHeight: token.controlHeight,\n '&-content': {\n flex: 'auto',\n maxWidth: '100%'\n }\n }\n },\n // ==============================================================\n // = Explain =\n // ==============================================================\n [formItemCls]: {\n '&-explain, &-extra': {\n clear: 'both',\n color: token.colorTextDescription,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n },\n '&-explain-connected': {\n width: '100%'\n },\n '&-extra': {\n minHeight: token.controlHeightSM,\n transition: `color ${token.motionDurationMid} ${token.motionEaseOut}` // sync input color transition\n },\n\n '&-explain': {\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n }\n }\n },\n [`&-with-help ${formItemCls}-explain`]: {\n height: 'auto',\n opacity: 1\n },\n // ==============================================================\n // = Feedback Icon =\n // ==============================================================\n [`${formItemCls}-feedback-icon`]: {\n fontSize: token.fontSize,\n textAlign: 'center',\n visibility: 'visible',\n animationName: zoomIn,\n animationDuration: token.motionDurationMid,\n animationTimingFunction: token.motionEaseOutBack,\n pointerEvents: 'none',\n '&-success': {\n color: token.colorSuccess\n },\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n },\n '&-validating': {\n color: token.colorPrimary\n }\n }\n })\n };\n};\nconst genHorizontalStyle = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${componentCls}-horizontal`]: {\n [`${formItemCls}-label`]: {\n flexGrow: 0\n },\n [`${formItemCls}-control`]: {\n flex: '1 1 0',\n // https://github.com/ant-design/ant-design/issues/32777\n // https://github.com/ant-design/ant-design/issues/33773\n minWidth: 0\n },\n // https://github.com/ant-design/ant-design/issues/32980\n [`${formItemCls}-label.${rootPrefixCls}-col-24 + ${formItemCls}-control`]: {\n minWidth: 'unset'\n }\n }\n };\n};\nconst genInlineStyle = token => {\n const {\n componentCls,\n formItemCls\n } = token;\n return {\n [`${componentCls}-inline`]: {\n display: 'flex',\n flexWrap: 'wrap',\n [formItemCls]: {\n flex: 'none',\n flexWrap: 'nowrap',\n marginInlineEnd: token.margin,\n marginBottom: 0,\n '&-with-help': {\n marginBottom: token.marginLG\n },\n [`> ${formItemCls}-label,\n > ${formItemCls}-control`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [`> ${formItemCls}-label`]: {\n flex: 'none'\n },\n [`${componentCls}-text`]: {\n display: 'inline-block'\n },\n [`${formItemCls}-has-feedback`]: {\n display: 'inline-block'\n }\n }\n }\n };\n};\nconst makeVerticalLayoutLabel = token => ({\n margin: 0,\n padding: `0 0 ${token.paddingXS}px`,\n whiteSpace: 'initial',\n textAlign: 'start',\n '> label': {\n margin: 0,\n '&::after': {\n display: 'none'\n }\n }\n});\nconst makeVerticalLayout = token => {\n const {\n componentCls,\n formItemCls\n } = token;\n return {\n [`${formItemCls} ${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [componentCls]: {\n [formItemCls]: {\n flexWrap: 'wrap',\n [`${formItemCls}-label,\n ${formItemCls}-control`]: {\n flex: '0 0 100%',\n maxWidth: '100%'\n }\n }\n }\n };\n};\nconst genVerticalStyle = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${componentCls}-vertical`]: {\n [formItemCls]: {\n '&-row': {\n flexDirection: 'column'\n },\n '&-label > label': {\n height: 'auto'\n },\n [`${componentCls}-item-control`]: {\n width: '100%'\n }\n }\n },\n [`${componentCls}-vertical ${formItemCls}-label,\n .${rootPrefixCls}-col-24${formItemCls}-label,\n .${rootPrefixCls}-col-xl-24${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [`@media (max-width: ${token.screenXSMax}px)`]: [makeVerticalLayout(token), {\n [componentCls]: {\n [`.${rootPrefixCls}-col-xs-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }],\n [`@media (max-width: ${token.screenSMMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-sm-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${token.screenMDMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-md-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${token.screenLGMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-lg-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Form', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const formToken = mergeToken(token, {\n formItemCls: `${token.componentCls}-item`,\n rootPrefixCls\n });\n return [genFormStyle(formToken), genFormItemStyle(formToken), genFormValidateMotionStyle(formToken), genHorizontalStyle(formToken), genInlineStyle(formToken), genVerticalStyle(formToken), genCollapseMotion(formToken), zoomIn];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport initCollapseMotion from '../_util/motion';\nimport { FormItemPrefixContext } from './context';\nimport useDebounce from './hooks/useDebounce';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nfunction toErrorEntity(error, prefix, errorStatus) {\n let index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return {\n key: typeof error === 'string' ? error : `${prefix}-${index}`,\n error,\n errorStatus\n };\n}\nexport default function ErrorList(_ref) {\n let {\n help,\n helpStatus,\n errors = EMPTY_LIST,\n warnings = EMPTY_LIST,\n className: rootClassName,\n fieldId,\n onVisibleChanged\n } = _ref;\n const {\n prefixCls\n } = React.useContext(FormItemPrefixContext);\n const baseClassName = `${prefixCls}-item-explain`;\n const [, hashId] = useStyle(prefixCls);\n const collapseMotion = useMemo(() => initCollapseMotion(prefixCls), [prefixCls]);\n // We have to debounce here again since somewhere use ErrorList directly still need no shaking\n // ref: https://github.com/ant-design/ant-design/issues/36336\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const fullKeyList = React.useMemo(() => {\n if (help !== undefined && help !== null) {\n return [toErrorEntity(help, 'help', helpStatus)];\n }\n return [].concat(_toConsumableArray(debounceErrors.map((error, index) => toErrorEntity(error, 'error', 'error', index))), _toConsumableArray(debounceWarnings.map((warning, index) => toErrorEntity(warning, 'warning', 'warning', index))));\n }, [help, helpStatus, debounceErrors, debounceWarnings]);\n const helpProps = {};\n if (fieldId) {\n helpProps.id = `${fieldId}_help`;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: collapseMotion.motionDeadline,\n motionName: `${prefixCls}-show-help`,\n visible: !!fullKeyList.length,\n onVisibleChanged: onVisibleChanged\n }, holderProps => {\n const {\n className: holderClassName,\n style: holderStyle\n } = holderProps;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, helpProps, {\n className: classNames(baseClassName, holderClassName, rootClassName, hashId),\n style: holderStyle,\n role: \"alert\"\n }), /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({\n keys: fullKeyList\n }, initCollapseMotion(prefixCls), {\n motionName: `${prefixCls}-show-help-item`,\n component: false\n }), itemProps => {\n const {\n key,\n error,\n errorStatus,\n className: itemClassName,\n style: itemStyle\n } = itemProps;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(itemClassName, {\n [`${baseClassName}-${errorStatus}`]: errorStatus\n }),\n style: itemStyle\n }, error);\n }));\n });\n}","// form item name black list. in form ,you can use form.id get the form item element.\n// use object hasOwnProperty will get better performance if black list is longer.\nconst formItemNameBlackList = ['parentNode'];\n// default form item id prefix.\nconst defaultItemNamePrefixCls = 'form_item';\nexport function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) {\n return undefined;\n }\n const mergedId = namePath.join('_');\n if (formName) {\n return `${formName}_${mergedId}`;\n }\n const isIllegalName = formItemNameBlackList.includes(mergedId);\n return isIllegalName ? `${defaultItemNamePrefixCls}_${mergedId}` : mergedId;\n}","import { useForm as useRcForm } from 'rc-field-form';\nimport * as React from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { getFieldId, toArray } from '../util';\nfunction toNamePathStr(name) {\n const namePath = toArray(name);\n return namePath.join('_');\n}\nexport default function useForm(form) {\n const [rcForm] = useRcForm();\n const itemsRef = React.useRef({});\n const wrapForm = React.useMemo(() => form !== null && form !== void 0 ? form : Object.assign(Object.assign({}, rcForm), {\n __INTERNAL__: {\n itemRef: name => node => {\n const namePathStr = toNamePathStr(name);\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n }\n },\n scrollToField: function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const namePath = toArray(name);\n const fieldId = getFieldId(namePath, wrapForm.__INTERNAL__.name);\n const node = fieldId ? document.getElementById(fieldId) : null;\n if (node) {\n scrollIntoView(node, Object.assign({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, options));\n }\n },\n getFieldInstance: name => {\n const namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n }), [form, rcForm]);\n return [wrapForm];\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport FieldForm, { List, useWatch } from 'rc-field-form';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext, { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport SizeContext, { SizeContextProvider } from '../config-provider/SizeContext';\nimport { FormContext } from './context';\nimport useForm from './hooks/useForm';\nimport useStyle from './style';\nconst InternalForm = (props, ref) => {\n const contextSize = React.useContext(SizeContext);\n const contextDisabled = React.useContext(DisabledContext);\n const {\n getPrefixCls,\n direction,\n form: contextForm\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className = '',\n size = contextSize,\n disabled = contextDisabled,\n form,\n colon,\n labelAlign,\n labelWrap,\n labelCol,\n wrapperCol,\n hideRequiredMark,\n layout = 'horizontal',\n scrollToFirstError,\n requiredMark,\n onFinishFailed,\n name\n } = props,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"size\", \"disabled\", \"form\", \"colon\", \"labelAlign\", \"labelWrap\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\"]);\n const mergedRequiredMark = useMemo(() => {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n if (contextForm && contextForm.requiredMark !== undefined) {\n return contextForm.requiredMark;\n }\n if (hideRequiredMark) {\n return false;\n }\n return true;\n }, [hideRequiredMark, requiredMark, contextForm]);\n const mergedColon = colon !== null && colon !== void 0 ? colon : contextForm === null || contextForm === void 0 ? void 0 : contextForm.colon;\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const formClassName = classNames(prefixCls, {\n [`${prefixCls}-${layout}`]: true,\n [`${prefixCls}-hide-required-mark`]: mergedRequiredMark === false,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${size}`]: size\n }, hashId, className);\n const [wrapForm] = useForm(form);\n const {\n __INTERNAL__\n } = wrapForm;\n __INTERNAL__.name = name;\n const formContextValue = useMemo(() => ({\n name,\n labelAlign,\n labelCol,\n labelWrap,\n wrapperCol,\n vertical: layout === 'vertical',\n colon: mergedColon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef,\n form: wrapForm\n }), [name, labelAlign, labelCol, wrapperCol, layout, mergedColon, mergedRequiredMark, wrapForm]);\n React.useImperativeHandle(ref, () => wrapForm);\n const onInternalFinishFailed = errorInfo => {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n let defaultScrollToFirstError = {\n block: 'nearest'\n };\n if (scrollToFirstError && errorInfo.errorFields.length) {\n if (typeof scrollToFirstError === 'object') {\n defaultScrollToFirstError = scrollToFirstError;\n }\n wrapForm.scrollToField(errorInfo.errorFields[0].name, defaultScrollToFirstError);\n }\n };\n return wrapSSR( /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: disabled\n }, /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, Object.assign({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n className: formClassName\n }))))));\n};\nconst Form = /*#__PURE__*/React.forwardRef(InternalForm);\nexport { useForm, List, useWatch };\nexport default Form;","import { useContext } from 'react';\nimport { FormItemInputContext } from '../context';\nimport warning from '../../_util/warning';\nconst useFormItemStatus = () => {\n const {\n status\n } = useContext(FormItemInputContext);\n process.env.NODE_ENV !== \"production\" ? warning(status !== undefined, 'Form.Item', `Form.Item.useStatus should be used under Form.Item component. For more information: ${window.location.protocol}//${window.location.host}/components/form-cn/#Form.Item.useStatus`) : void 0;\n return {\n status\n };\n};\n// Only used for compatible package. Not promise this will work on future version.\nuseFormItemStatus.Context = FormItemInputContext;\nexport default useFormItemStatus;","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\nQuestionCircleOutlined.displayName = 'QuestionCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { useLocaleReceiver } from '../locale/LocaleReceiver';\nimport defaultLocale from '../locale/en_US';\nimport Tooltip from '../tooltip';\nimport { FormContext } from './context';\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n if (typeof tooltip === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n return {\n title: tooltip\n };\n}\nconst FormItemLabel = _ref => {\n let {\n prefixCls,\n label,\n htmlFor,\n labelCol,\n labelAlign,\n colon,\n required,\n requiredMark,\n tooltip\n } = _ref;\n var _a;\n const [formLocale] = useLocaleReceiver('Form');\n const {\n vertical,\n labelAlign: contextLabelAlign,\n labelCol: contextLabelCol,\n labelWrap,\n colon: contextColon\n } = React.useContext(FormContext);\n if (!label) {\n return null;\n }\n const mergedLabelCol = labelCol || contextLabelCol || {};\n const mergedLabelAlign = labelAlign || contextLabelAlign;\n const labelClsBasic = `${prefixCls}-item-label`;\n const labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && `${labelClsBasic}-left`, mergedLabelCol.className, {\n [`${labelClsBasic}-wrap`]: !!labelWrap\n });\n let labelChildren = label;\n // Keep label is original where there should have no colon\n const computedColon = colon === true || contextColon !== false && colon !== false;\n const haveColon = computedColon && !vertical;\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && label.trim() !== '') {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n }\n // Tooltip\n const tooltipProps = toTooltipProps(tooltip);\n if (tooltipProps) {\n const {\n icon = /*#__PURE__*/React.createElement(QuestionCircleOutlined, null)\n } = tooltipProps,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n const tooltipNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, restTooltipProps), /*#__PURE__*/React.cloneElement(icon, {\n className: `${prefixCls}-item-tooltip`,\n title: ''\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n }\n if (requiredMark === 'optional' && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-optional`,\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n const labelClassName = classNames({\n [`${prefixCls}-item-required`]: required,\n [`${prefixCls}-item-required-mark-optional`]: requiredMark === 'optional',\n [`${prefixCls}-item-no-colon`]: !computedColon\n });\n return /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n};\nexport default FormItemLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nconst FormItemInput = props => {\n const {\n prefixCls,\n status,\n wrapperCol,\n children,\n errors,\n warnings,\n _internalItemRender: formItemRender,\n extra,\n help,\n fieldId,\n marginBottom,\n onErrorVisibleChanged\n } = props;\n const baseClassName = `${prefixCls}-item`;\n const formContext = React.useContext(FormContext);\n const mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};\n const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className);\n // Pass to sub FormItem should not with col info\n const subFormContext = React.useMemo(() => Object.assign({}, formContext), [formContext]);\n delete subFormContext.labelCol;\n delete subFormContext.wrapperCol;\n const inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input-content`\n }, children));\n const formItemContext = React.useMemo(() => ({\n prefixCls,\n status\n }), [prefixCls, status]);\n const errorListDom = marginBottom !== null || errors.length || warnings.length ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'nowrap'\n }\n }, /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: formItemContext\n }, /*#__PURE__*/React.createElement(ErrorList, {\n fieldId: fieldId,\n errors: errors,\n warnings: warnings,\n help: help,\n helpStatus: status,\n className: `${baseClassName}-explain-connected`,\n onVisibleChanged: onErrorVisibleChanged\n })), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: 0,\n height: marginBottom\n }\n })) : null;\n const extraProps = {};\n if (fieldId) {\n extraProps.id = `${fieldId}_extra`;\n }\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n const extraDom = extra ? /*#__PURE__*/React.createElement(\"div\", Object.assign({}, extraProps, {\n className: `${baseClassName}-extra`\n }), extra) : null;\n const dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : /*#__PURE__*/React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom);\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedWrapperCol, {\n className: className\n }), dom));\n};\nexport default FormItemInput;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport omit from \"rc-util/es/omit\";\nimport { Row } from '../../grid';\nimport FormItemLabel from '../FormItemLabel';\nimport FormItemInput from '../FormItemInput';\nimport { FormContext, FormItemInputContext, NoStyleItemContext } from '../context';\nimport useDebounce from '../hooks/useDebounce';\nconst iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\nexport default function ItemHolder(props) {\n const {\n prefixCls,\n className,\n style,\n help,\n errors,\n warnings,\n validateStatus,\n meta,\n hasFeedback,\n hidden,\n children,\n fieldId,\n isRequired,\n onSubItemMetaChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"help\", \"errors\", \"warnings\", \"validateStatus\", \"meta\", \"hasFeedback\", \"hidden\", \"children\", \"fieldId\", \"isRequired\", \"onSubItemMetaChange\"]);\n const itemPrefixCls = `${prefixCls}-item`;\n const {\n requiredMark\n } = React.useContext(FormContext);\n // ======================== Margin ========================\n const itemRef = React.useRef(null);\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const hasHelp = help !== undefined && help !== null;\n const hasError = !!(hasHelp || errors.length || warnings.length);\n const [marginBottom, setMarginBottom] = React.useState(null);\n useLayoutEffect(() => {\n if (hasError && itemRef.current) {\n const itemStyle = getComputedStyle(itemRef.current);\n setMarginBottom(parseInt(itemStyle.marginBottom, 10));\n }\n }, [hasError]);\n const onErrorVisibleChanged = nextVisible => {\n if (!nextVisible) {\n setMarginBottom(null);\n }\n };\n // ======================== Status ========================\n let mergedValidateStatus = '';\n if (validateStatus !== undefined) {\n mergedValidateStatus = validateStatus;\n } else if (meta.validating) {\n mergedValidateStatus = 'validating';\n } else if (debounceErrors.length) {\n mergedValidateStatus = 'error';\n } else if (debounceWarnings.length) {\n mergedValidateStatus = 'warning';\n } else if (meta.touched) {\n mergedValidateStatus = 'success';\n }\n const formItemStatusContext = React.useMemo(() => {\n let feedbackIcon;\n if (hasFeedback) {\n const IconNode = mergedValidateStatus && iconMap[mergedValidateStatus];\n feedbackIcon = IconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-feedback-icon`, `${itemPrefixCls}-feedback-icon-${mergedValidateStatus}`)\n }, /*#__PURE__*/React.createElement(IconNode, null)) : null;\n }\n return {\n status: mergedValidateStatus,\n hasFeedback,\n feedbackIcon,\n isFormItemInput: true\n };\n }, [mergedValidateStatus, hasFeedback]);\n // ======================== Render ========================\n const itemClassName = {\n [itemPrefixCls]: true,\n [`${itemPrefixCls}-with-help`]: hasHelp || debounceErrors.length || debounceWarnings.length,\n [`${className}`]: !!className,\n // Status\n [`${itemPrefixCls}-has-feedback`]: mergedValidateStatus && hasFeedback,\n [`${itemPrefixCls}-has-success`]: mergedValidateStatus === 'success',\n [`${itemPrefixCls}-has-warning`]: mergedValidateStatus === 'warning',\n [`${itemPrefixCls}-has-error`]: mergedValidateStatus === 'error',\n [`${itemPrefixCls}-is-validating`]: mergedValidateStatus === 'validating',\n [`${itemPrefixCls}-hidden`]: hidden\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemClassName),\n style: style,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Row, Object.assign({\n className: `${itemPrefixCls}-row`\n }, omit(restProps, ['_internalItemRender', 'colon', 'dependencies', 'extra', 'fieldKey', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id', 'initialValue', 'isListField', 'label', 'labelAlign', 'labelCol', 'labelWrap', 'messageVariables', 'name', 'normalize', 'noStyle', 'preserve', 'required', 'requiredMark', 'rules', 'shouldUpdate', 'trigger', 'tooltip', 'validateFirst', 'validateTrigger', 'valuePropName', 'wrapperCol'])), /*#__PURE__*/React.createElement(FormItemLabel, Object.assign({\n htmlFor: fieldId,\n required: isRequired,\n requiredMark: requiredMark\n }, props, {\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(FormItemInput, Object.assign({}, props, meta, {\n errors: debounceErrors,\n warnings: debounceWarnings,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n help: help,\n marginBottom: marginBottom,\n onErrorVisibleChanged: onErrorVisibleChanged\n }), /*#__PURE__*/React.createElement(NoStyleItemContext.Provider, {\n value: onSubItemMetaChange\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: formItemStatusContext\n }, children)))), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n className: `${itemPrefixCls}-margin-offset`,\n style: {\n marginBottom: -marginBottom\n }\n }));\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport { Field, FieldContext, ListContext } from 'rc-field-form';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport useFormItemStatus from '../hooks/useFormItemStatus';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport warning from '../../_util/warning';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport useFrameState from '../hooks/useFrameState';\nimport useItemRef from '../hooks/useItemRef';\nimport { getFieldId, toArray } from '../util';\nimport ItemHolder from './ItemHolder';\nimport useStyle from '../style';\nconst NAME_SPLIT = '__SPLIT__';\nconst ValidateStatuses = ['success', 'warning', 'error', 'validating', ''];\nconst MemoInput = /*#__PURE__*/React.memo(_ref => {\n let {\n children\n } = _ref;\n return children;\n}, (prev, next) => prev.value === next.value && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every((value, index) => value === next.childProps[index]));\nfunction hasValidName(name) {\n if (name === null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', '`null` is passed as `name` property') : void 0;\n }\n return !(name === undefined || name === null);\n}\nfunction genEmptyMeta() {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n name: []\n };\n}\nfunction InternalFormItem(props) {\n const {\n name,\n noStyle,\n className,\n dependencies,\n prefixCls: customizePrefixCls,\n shouldUpdate,\n rules,\n children,\n required,\n label,\n messageVariables,\n trigger = 'onChange',\n validateTrigger,\n hidden\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n name: formName\n } = React.useContext(FormContext);\n const isRenderProps = typeof children === 'function';\n const notifyParentMetaChange = React.useContext(NoStyleItemContext);\n const {\n validateTrigger: contextValidateTrigger\n } = React.useContext(FieldContext);\n const mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n const hasName = hasValidName(name);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ========================= MISC =========================\n // Get `noStyle` required info\n const listContext = React.useContext(ListContext);\n const fieldKeyPathRef = React.useRef();\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n const [subFieldErrors, setSubFieldErrors] = useFrameState({});\n // >>>>> Current field errors\n const [meta, setMeta] = useState(() => genEmptyMeta());\n const onMetaChange = nextMeta => {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n const keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);\n // Bump to parent since noStyle\n if (noStyle && notifyParentMetaChange) {\n let namePath = nextMeta.name;\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n const [fieldKey, restPath] = keyInfo;\n namePath = [fieldKey].concat(_toConsumableArray(restPath));\n fieldKeyPathRef.current = namePath;\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath;\n }\n notifyParentMetaChange(nextMeta, namePath);\n }\n };\n // >>>>> Collect noStyle Field error to the top FormItem\n const onSubItemMetaChange = (subMeta, uniqueKeys) => {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors(prevSubFieldErrors => {\n const clone = Object.assign({}, prevSubFieldErrors);\n // name: ['user', 1] + key: [4] = ['user', 4]\n const mergedNamePath = [].concat(_toConsumableArray(subMeta.name.slice(0, -1)), _toConsumableArray(uniqueKeys));\n const mergedNameKey = mergedNamePath.join(NAME_SPLIT);\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey];\n } else {\n // Update\n clone[mergedNameKey] = subMeta;\n }\n return clone;\n });\n };\n // >>>>> Get merged errors\n const [mergedErrors, mergedWarnings] = React.useMemo(() => {\n const errorList = _toConsumableArray(meta.errors);\n const warningList = _toConsumableArray(meta.warnings);\n Object.values(subFieldErrors).forEach(subFieldError => {\n errorList.push.apply(errorList, _toConsumableArray(subFieldError.errors || []));\n warningList.push.apply(warningList, _toConsumableArray(subFieldError.warnings || []));\n });\n return [errorList, warningList];\n }, [subFieldErrors, meta.errors, meta.warnings]);\n // ===================== Children Ref =====================\n const getItemRef = useItemRef();\n // ======================== Render ========================\n function renderLayout(baseChildren, fieldId, isRequired) {\n if (noStyle && !hidden) {\n return baseChildren;\n }\n return /*#__PURE__*/React.createElement(ItemHolder, Object.assign({\n key: \"row\"\n }, props, {\n className: classNames(className, hashId),\n prefixCls: prefixCls,\n fieldId: fieldId,\n isRequired: isRequired,\n errors: mergedErrors,\n warnings: mergedWarnings,\n meta: meta,\n onSubItemMetaChange: onSubItemMetaChange\n }), baseChildren);\n }\n if (!hasName && !isRenderProps && !dependencies) {\n return wrapSSR(renderLayout(children));\n }\n let variables = {};\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n if (messageVariables) {\n variables = Object.assign(Object.assign({}, variables), messageVariables);\n }\n // >>>>> With Field\n return wrapSSR( /*#__PURE__*/React.createElement(Field, Object.assign({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onMetaChange: onMetaChange\n }), (control, renderMeta, context) => {\n const mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];\n const fieldId = getFieldId(mergedName, formName);\n const isRequired = required !== undefined ? required : !!(rules && rules.some(rule => {\n if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {\n return true;\n }\n if (typeof rule === 'function') {\n const ruleEntity = rule(context);\n return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly;\n }\n return false;\n }));\n // ======================= Children =======================\n const mergedControl = Object.assign({}, control);\n let childNode = null;\n process.env.NODE_ENV !== \"production\" ? warning(!(shouldUpdate && dependencies), 'Form.Item', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\") : void 0;\n if (Array.isArray(children) && hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.') : void 0;\n childNode = children;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n process.env.NODE_ENV !== \"production\" ? warning(!!(shouldUpdate || dependencies), 'Form.Item', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!hasName, 'Form.Item', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.') : void 0;\n } else if (dependencies && !isRenderProps && !hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'Must set `name` or use a render function when `dependencies` is set.') : void 0;\n } else if (isValidElement(children)) {\n process.env.NODE_ENV !== \"production\" ? warning(children.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.') : void 0;\n const childProps = Object.assign(Object.assign({}, children.props), mergedControl);\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n if (props.help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n const describedbyArr = [];\n if (props.help || mergedErrors.length > 0) {\n describedbyArr.push(`${fieldId}_help`);\n }\n if (props.extra) {\n describedbyArr.push(`${fieldId}_extra`);\n }\n childProps['aria-describedby'] = describedbyArr.join(' ');\n }\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true';\n }\n if (isRequired) {\n childProps['aria-required'] = 'true';\n }\n if (supportRef(children)) {\n childProps.ref = getItemRef(mergedName, children);\n }\n // We should keep user origin event handler\n const triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(eventName => {\n childProps[eventName] = function () {\n var _a2, _c2;\n var _a, _b, _c;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = children.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n const watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby']];\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n value: mergedControl[props.valuePropName || 'value'],\n update: children,\n childProps: watchingChildProps\n }, cloneElement(children, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = children(context);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.') : void 0;\n childNode = children;\n }\n return renderLayout(childNode, fieldId, isRequired);\n }));\n}\nconst FormItem = InternalFormItem;\nFormItem.useStatus = useFormItemStatus;\nexport default FormItem;","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nexport default function useFrameState(defaultValue) {\n const [value, setValue] = React.useState(defaultValue);\n const frameRef = useRef(null);\n const batchRef = useRef([]);\n const destroyRef = useRef(false);\n React.useEffect(() => {\n destroyRef.current = false;\n return () => {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n frameRef.current = null;\n };\n }, []);\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(() => {\n frameRef.current = null;\n setValue(prevValue => {\n let current = prevValue;\n batchRef.current.forEach(func => {\n current = func(current);\n });\n return current;\n });\n });\n }\n batchRef.current.push(updater);\n }\n return [value, setFrameValue];\n}","import { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n const {\n itemRef\n } = React.useContext(FormContext);\n const cacheRef = React.useRef({});\n function getRef(name, children) {\n const childrenRef = children && typeof children === 'object' && children.ref;\n const nameStr = name.join('_');\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n return cacheRef.current.ref;\n }\n return getRef;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { List } from 'rc-field-form';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nimport { FormItemPrefixContext } from './context';\nconst FormList = _a => {\n var {\n prefixCls: customizePrefixCls,\n children\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n process.env.NODE_ENV !== \"production\" ? warning(!!props.name, 'Form.List', 'Miss `name` prop.') : void 0;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n const contextValue = React.useMemo(() => ({\n prefixCls,\n status: 'error'\n }), [prefixCls]);\n return /*#__PURE__*/React.createElement(List, Object.assign({}, props), (fields, operation, meta) => /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: contextValue\n }, children(fields.map(field => Object.assign(Object.assign({}, field), {\n fieldKey: field.key\n })), operation, {\n errors: meta.errors,\n warnings: meta.warnings\n })));\n};\nexport default FormList;","import warning from '../_util/warning';\nimport { FormProvider } from './context';\nimport ErrorList from './ErrorList';\nimport InternalForm, { useForm, useWatch } from './Form';\nimport Item from './FormItem';\nimport List from './FormList';\nimport useFormInstance from './hooks/useFormInstance';\nconst Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.useFormInstance = useFormInstance;\nForm.useWatch = useWatch;\nForm.Provider = FormProvider;\nForm.create = () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.') : void 0;\n};\nexport default Form;","import { useContext } from 'react';\nimport { FormContext } from '../context';\nexport default function useFormInstance() {\n const {\n form\n } = useContext(FormContext);\n return form;\n}","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\n// ============================== Shared ==============================\nconst genSharedDividerStyle = token => {\n const {\n componentCls,\n sizePaddingEdgeHorizontal,\n colorSplit,\n lineWidth\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n borderBlockStart: `${lineWidth}px solid ${colorSplit}`,\n // vertical\n '&-vertical': {\n position: 'relative',\n top: '-0.06em',\n display: 'inline-block',\n height: '0.9em',\n margin: `0 ${token.dividerVerticalGutterMargin}px`,\n verticalAlign: 'middle',\n borderTop: 0,\n borderInlineStart: `${lineWidth}px solid ${colorSplit}`\n },\n '&-horizontal': {\n display: 'flex',\n clear: 'both',\n width: '100%',\n minWidth: '100%',\n margin: `${token.dividerHorizontalGutterMargin}px 0`\n },\n [`&-horizontal${componentCls}-with-text`]: {\n display: 'flex',\n alignItems: 'center',\n margin: `${token.dividerHorizontalWithTextGutterMargin}px 0`,\n color: token.colorTextHeading,\n fontWeight: 500,\n fontSize: token.fontSizeLG,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n borderBlockStart: `0 ${colorSplit}`,\n '&::before, &::after': {\n position: 'relative',\n width: '50%',\n borderBlockStart: `${lineWidth}px solid transparent`,\n // Chrome not accept `inherit` in `border-top`\n borderBlockStartColor: 'inherit',\n borderBlockEnd: 0,\n transform: 'translateY(50%)',\n content: \"''\"\n }\n },\n [`&-horizontal${componentCls}-with-text-left`]: {\n '&::before': {\n width: '5%'\n },\n '&::after': {\n width: '95%'\n }\n },\n [`&-horizontal${componentCls}-with-text-right`]: {\n '&::before': {\n width: '95%'\n },\n '&::after': {\n width: '5%'\n }\n },\n [`${componentCls}-inner-text`]: {\n display: 'inline-block',\n padding: '0 1em'\n },\n '&-dashed': {\n background: 'none',\n borderColor: colorSplit,\n borderStyle: 'dashed',\n borderWidth: `${lineWidth}px 0 0`\n },\n [`&-horizontal${componentCls}-with-text${componentCls}-dashed`]: {\n '&::before, &::after': {\n borderStyle: 'dashed none none'\n }\n },\n [`&-vertical${componentCls}-dashed`]: {\n borderInlineStart: lineWidth,\n borderInlineEnd: 0,\n borderBlockStart: 0,\n borderBlockEnd: 0\n },\n [`&-plain${componentCls}-with-text`]: {\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`&-horizontal${componentCls}-with-text-left${componentCls}-no-default-orientation-margin-left`]: {\n '&::before': {\n width: 0\n },\n '&::after': {\n width: '100%'\n },\n [`${componentCls}-inner-text`]: {\n paddingInlineStart: sizePaddingEdgeHorizontal\n }\n },\n [`&-horizontal${componentCls}-with-text-right${componentCls}-no-default-orientation-margin-right`]: {\n '&::before': {\n width: '100%'\n },\n '&::after': {\n width: 0\n },\n [`${componentCls}-inner-text`]: {\n paddingInlineEnd: sizePaddingEdgeHorizontal\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Divider', token => {\n const dividerToken = mergeToken(token, {\n dividerVerticalGutterMargin: token.marginXS,\n dividerHorizontalWithTextGutterMargin: token.margin,\n dividerHorizontalGutterMargin: token.marginLG\n });\n return [genSharedDividerStyle(dividerToken)];\n}, {\n sizePaddingEdgeHorizontal: 0\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nimport useStyle from './style';\nconst Divider = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n type = 'horizontal',\n orientation = 'center',\n orientationMargin,\n className,\n children,\n dashed,\n plain\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"orientation\", \"orientationMargin\", \"className\", \"children\", \"dashed\", \"plain\"]);\n const prefixCls = getPrefixCls('divider', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const orientationPrefix = orientation.length > 0 ? `-${orientation}` : orientation;\n const hasChildren = !!children;\n const hasCustomMarginLeft = orientation === 'left' && orientationMargin != null;\n const hasCustomMarginRight = orientation === 'right' && orientationMargin != null;\n const classString = classNames(prefixCls, hashId, `${prefixCls}-${type}`, {\n [`${prefixCls}-with-text`]: hasChildren,\n [`${prefixCls}-with-text${orientationPrefix}`]: hasChildren,\n [`${prefixCls}-dashed`]: !!dashed,\n [`${prefixCls}-plain`]: !!plain,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-no-default-orientation-margin-left`]: hasCustomMarginLeft,\n [`${prefixCls}-no-default-orientation-margin-right`]: hasCustomMarginRight\n }, className);\n const innerStyle = Object.assign(Object.assign({}, hasCustomMarginLeft && {\n marginLeft: orientationMargin\n }), hasCustomMarginRight && {\n marginRight: orientationMargin\n });\n // Warning children not work in vertical mode\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!children || type !== 'vertical', 'Divider', '`children` not working in `vertical` mode.') : void 0;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString\n }, restProps, {\n role: \"separator\"\n }), children && type !== 'vertical' && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-inner-text`,\n style: innerStyle\n }, children)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Divider.displayName = 'Divider';\n}\nexport default Divider;","import Slider from \"react-animated-slider\";\r\nimport \"react-animated-slider/build/horizontal.css\";\r\nimport bannerNew from \"../../assets/img/bn-new.jpg\";\r\nimport \"./animate-slider.scss\";\r\nconst AnimateSider = (item: {\r\n title?: string;\r\n description?: string;\r\n content?: string;\r\n button?: string;\r\n imgage?: string;\r\n}) => (\r\n <>\r\n \r\n \r\n
\r\n
\r\n {item.title}\r\n
\r\n

{item.content}

\r\n

{item.description}

\r\n
\r\n \r\n
\r\n \r\n);\r\nexport default AnimateSider;\r\n","function getError(option, xhr) {\n var msg = \"cannot \".concat(option.method, \" \").concat(option.action, \" \").concat(xhr.status, \"'\");\n var err = new Error(msg);\n err.status = xhr.status;\n err.method = option.method;\n err.url = option.action;\n return err;\n}\n\nfunction getBody(xhr) {\n var text = xhr.responseText || xhr.response;\n\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function upload(option) {\n // eslint-disable-next-line no-undef\n var xhr = new XMLHttpRequest();\n\n if (option.onProgress && xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n\n option.onProgress(e);\n };\n } // eslint-disable-next-line no-undef\n\n\n var formData = new FormData();\n\n if (option.data) {\n Object.keys(option.data).forEach(function (key) {\n var value = option.data[key]; // support key-value array data\n\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n // { list: [ 11, 22 ] }\n // formData.append('list[]', 11);\n formData.append(\"\".concat(key, \"[]\"), item);\n });\n return;\n }\n\n formData.append(key, value);\n });\n } // eslint-disable-next-line no-undef\n\n\n if (option.file instanceof Blob) {\n formData.append(option.filename, option.file, option.file.name);\n } else {\n formData.append(option.filename, option.file);\n }\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n // allow success when 2xx status\n // see https://github.com/react-component/upload/issues/34\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(option, xhr), getBody(xhr));\n }\n\n return option.onSuccess(getBody(xhr), xhr);\n };\n\n xhr.open(option.method, option.action, true); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n var headers = option.headers || {}; // when set headers['X-Requested-With'] = null , can close default XHR header\n // see https://github.com/react-component/upload/issues/33\n\n if (headers['X-Requested-With'] !== null) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n Object.keys(headers).forEach(function (h) {\n if (headers[h] !== null) {\n xhr.setRequestHeader(h, headers[h]);\n }\n });\n xhr.send(formData);\n return {\n abort: function abort() {\n xhr.abort();\n }\n };\n}","var now = +new Date();\nvar index = 0;\nexport default function uid() {\n // eslint-disable-next-line no-plusplus\n return \"rc-upload-\".concat(now, \"-\").concat(++index);\n}","import warning from \"rc-util/es/warning\";\nexport default (function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = file.type || '';\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim(); // This is something like */*,* allow all files\n\n if (/^\\*(\\/\\*)?$/.test(type)) {\n return true;\n } // like .jpg, .png\n\n\n if (validType.charAt(0) === '.') {\n var lowerFileName = fileName.toLowerCase();\n var lowerType = validType.toLowerCase();\n var affixList = [lowerType];\n\n if (lowerType === '.jpg' || lowerType === '.jpeg') {\n affixList = ['.jpg', '.jpeg'];\n }\n\n return affixList.some(function (affix) {\n return lowerFileName.endsWith(affix);\n });\n } // This is something like a image/* mime type\n\n\n if (/\\/\\*$/.test(validType)) {\n return baseMimeType === validType.replace(/\\/.*$/, '');\n } // Full match\n\n\n if (mimeType === validType) {\n return true;\n } // Invalidate type should skip\n\n\n if (/^\\w+$/.test(validType)) {\n warning(false, \"Upload takes an invalidate 'accept' type '\".concat(validType, \"'.Skip for check.\"));\n return true;\n }\n\n return false;\n });\n }\n\n return true;\n});","function loopFiles(item, callback) {\n var dirReader = item.createReader();\n var fileList = [];\n\n function sequence() {\n dirReader.readEntries(function (entries) {\n var entryList = Array.prototype.slice.apply(entries);\n fileList = fileList.concat(entryList); // Check if all the file has been viewed\n\n var isFinished = !entryList.length;\n\n if (isFinished) {\n callback(fileList);\n } else {\n sequence();\n }\n });\n }\n\n sequence();\n}\n\nvar traverseFileTree = function traverseFileTree(files, callback, isAccepted) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n var _traverseFileTree = function _traverseFileTree(item, path) {\n // eslint-disable-next-line no-param-reassign\n item.path = path || '';\n\n if (item.isFile) {\n item.file(function (file) {\n if (isAccepted(file)) {\n // https://github.com/ant-design/ant-design/issues/16426\n if (item.fullPath && !file.webkitRelativePath) {\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: true\n }\n }); // eslint-disable-next-line no-param-reassign\n\n file.webkitRelativePath = item.fullPath.replace(/^\\//, '');\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: false\n }\n });\n }\n\n callback([file]);\n }\n });\n } else if (item.isDirectory) {\n loopFiles(item, function (entries) {\n entries.forEach(function (entryItem) {\n _traverseFileTree(entryItem, \"\".concat(path).concat(item.name, \"/\"));\n });\n });\n }\n };\n\n files.forEach(function (file) {\n _traverseFileTree(file.webkitGetAsEntry());\n });\n};\n\nexport default traverseFileTree;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"prefixCls\", \"className\", \"disabled\", \"id\", \"style\", \"multiple\", \"accept\", \"capture\", \"children\", \"directory\", \"openFileDialogOnClick\", \"onMouseEnter\", \"onMouseLeave\"];\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\n\nvar AjaxUploader = /*#__PURE__*/function (_Component) {\n _inherits(AjaxUploader, _Component);\n\n var _super = _createSuper(AjaxUploader);\n\n function AjaxUploader() {\n var _this;\n\n _classCallCheck(this, AjaxUploader);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n uid: getUid()\n };\n _this.reqs = {};\n _this.fileInput = void 0;\n _this._isMounted = void 0;\n\n _this.onChange = function (e) {\n var _this$props = _this.props,\n accept = _this$props.accept,\n directory = _this$props.directory;\n var files = e.target.files;\n\n var acceptedFiles = _toConsumableArray(files).filter(function (file) {\n return !directory || attrAccept(file, accept);\n });\n\n _this.uploadFiles(acceptedFiles);\n\n _this.reset();\n };\n\n _this.onClick = function (e) {\n var el = _this.fileInput;\n\n if (!el) {\n return;\n }\n\n var _this$props2 = _this.props,\n children = _this$props2.children,\n onClick = _this$props2.onClick;\n\n if (children && children.type === 'button') {\n var parent = el.parentNode;\n parent.focus();\n parent.querySelector('button').blur();\n }\n\n el.click();\n\n if (onClick) {\n onClick(e);\n }\n };\n\n _this.onKeyDown = function (e) {\n if (e.key === 'Enter') {\n _this.onClick(e);\n }\n };\n\n _this.onFileDrop = function (e) {\n var multiple = _this.props.multiple;\n e.preventDefault();\n\n if (e.type === 'dragover') {\n return;\n }\n\n if (_this.props.directory) {\n traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) {\n return attrAccept(_file, _this.props.accept);\n });\n } else {\n var files = _toConsumableArray(e.dataTransfer.files).filter(function (file) {\n return attrAccept(file, _this.props.accept);\n });\n\n if (multiple === false) {\n files = files.slice(0, 1);\n }\n\n _this.uploadFiles(files);\n }\n };\n\n _this.uploadFiles = function (files) {\n var originFiles = _toConsumableArray(files);\n\n var postFiles = originFiles.map(function (file) {\n // eslint-disable-next-line no-param-reassign\n file.uid = getUid();\n return _this.processFile(file, originFiles);\n }); // Batch upload files\n\n Promise.all(postFiles).then(function (fileList) {\n var onBatchStart = _this.props.onBatchStart;\n onBatchStart === null || onBatchStart === void 0 ? void 0 : onBatchStart(fileList.map(function (_ref) {\n var origin = _ref.origin,\n parsedFile = _ref.parsedFile;\n return {\n file: origin,\n parsedFile: parsedFile\n };\n }));\n fileList.filter(function (file) {\n return file.parsedFile !== null;\n }).forEach(function (file) {\n _this.post(file);\n });\n });\n };\n\n _this.processFile = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file, fileList) {\n var beforeUpload, transformedFile, action, mergedAction, data, mergedData, parsedData, parsedFile, mergedParsedFile;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n beforeUpload = _this.props.beforeUpload;\n transformedFile = file;\n\n if (!beforeUpload) {\n _context.next = 14;\n break;\n }\n\n _context.prev = 3;\n _context.next = 6;\n return beforeUpload(file, fileList);\n\n case 6:\n transformedFile = _context.sent;\n _context.next = 12;\n break;\n\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n // Rejection will also trade as false\n transformedFile = false;\n\n case 12:\n if (!(transformedFile === false)) {\n _context.next = 14;\n break;\n }\n\n return _context.abrupt(\"return\", {\n origin: file,\n parsedFile: null,\n action: null,\n data: null\n });\n\n case 14:\n // Get latest action\n action = _this.props.action;\n\n if (!(typeof action === 'function')) {\n _context.next = 21;\n break;\n }\n\n _context.next = 18;\n return action(file);\n\n case 18:\n mergedAction = _context.sent;\n _context.next = 22;\n break;\n\n case 21:\n mergedAction = action;\n\n case 22:\n // Get latest data\n data = _this.props.data;\n\n if (!(typeof data === 'function')) {\n _context.next = 29;\n break;\n }\n\n _context.next = 26;\n return data(file);\n\n case 26:\n mergedData = _context.sent;\n _context.next = 30;\n break;\n\n case 29:\n mergedData = data;\n\n case 30:\n parsedData = // string type is from legacy `transformFile`.\n // Not sure if this will work since no related test case works with it\n (_typeof(transformedFile) === 'object' || typeof transformedFile === 'string') && transformedFile ? transformedFile : file;\n\n if (parsedData instanceof File) {\n parsedFile = parsedData;\n } else {\n parsedFile = new File([parsedData], file.name, {\n type: file.type\n });\n }\n\n mergedParsedFile = parsedFile;\n mergedParsedFile.uid = file.uid;\n return _context.abrupt(\"return\", {\n origin: file,\n data: mergedData,\n parsedFile: mergedParsedFile,\n action: mergedAction\n });\n\n case 35:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 9]]);\n }));\n\n return function (_x, _x2) {\n return _ref2.apply(this, arguments);\n };\n }();\n\n _this.saveFileInput = function (node) {\n _this.fileInput = node;\n };\n\n return _this;\n }\n\n _createClass(AjaxUploader, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._isMounted = true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._isMounted = false;\n this.abort();\n }\n }, {\n key: \"post\",\n value: function post(_ref3) {\n var _this2 = this;\n\n var data = _ref3.data,\n origin = _ref3.origin,\n action = _ref3.action,\n parsedFile = _ref3.parsedFile;\n\n if (!this._isMounted) {\n return;\n }\n\n var _this$props3 = this.props,\n onStart = _this$props3.onStart,\n customRequest = _this$props3.customRequest,\n name = _this$props3.name,\n headers = _this$props3.headers,\n withCredentials = _this$props3.withCredentials,\n method = _this$props3.method;\n var uid = origin.uid;\n var request = customRequest || defaultRequest;\n var requestOption = {\n action: action,\n filename: name,\n data: data,\n file: parsedFile,\n headers: headers,\n withCredentials: withCredentials,\n method: method || 'post',\n onProgress: function onProgress(e) {\n var onProgress = _this2.props.onProgress;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(e, parsedFile);\n },\n onSuccess: function onSuccess(ret, xhr) {\n var onSuccess = _this2.props.onSuccess;\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(ret, parsedFile, xhr);\n delete _this2.reqs[uid];\n },\n onError: function onError(err, ret) {\n var onError = _this2.props.onError;\n onError === null || onError === void 0 ? void 0 : onError(err, ret, parsedFile);\n delete _this2.reqs[uid];\n }\n };\n onStart(origin);\n this.reqs[uid] = request(requestOption);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.setState({\n uid: getUid()\n });\n }\n }, {\n key: \"abort\",\n value: function abort(file) {\n var reqs = this.reqs;\n\n if (file) {\n var uid = file.uid ? file.uid : file;\n\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n\n delete reqs[uid];\n } else {\n Object.keys(reqs).forEach(function (uid) {\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n\n delete reqs[uid];\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props4 = this.props,\n Tag = _this$props4.component,\n prefixCls = _this$props4.prefixCls,\n className = _this$props4.className,\n disabled = _this$props4.disabled,\n id = _this$props4.id,\n style = _this$props4.style,\n multiple = _this$props4.multiple,\n accept = _this$props4.accept,\n capture = _this$props4.capture,\n children = _this$props4.children,\n directory = _this$props4.directory,\n openFileDialogOnClick = _this$props4.openFileDialogOnClick,\n onMouseEnter = _this$props4.onMouseEnter,\n onMouseLeave = _this$props4.onMouseLeave,\n otherProps = _objectWithoutProperties(_this$props4, _excluded);\n\n var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, className, className), _classNames)); // because input don't have directory/webkitdirectory type declaration\n\n var dirProps = directory ? {\n directory: 'directory',\n webkitdirectory: 'webkitdirectory'\n } : {};\n var events = disabled ? {} : {\n onClick: openFileDialogOnClick ? this.onClick : function () {},\n onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onDrop: this.onFileDrop,\n onDragOver: this.onFileDrop,\n tabIndex: '0'\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({}, events, {\n className: cls,\n role: \"button\",\n style: style\n }), /*#__PURE__*/React.createElement(\"input\", _extends({}, pickAttrs(otherProps, {\n aria: true,\n data: true\n }), {\n id: id,\n type: \"file\",\n ref: this.saveFileInput,\n onClick: function onClick(e) {\n return e.stopPropagation();\n } // https://github.com/ant-design/ant-design/issues/19948\n ,\n key: this.state.uid,\n style: {\n display: 'none'\n },\n accept: accept\n }, dirProps, {\n multiple: multiple,\n onChange: this.onChange\n }, capture != null ? {\n capture: capture\n } : {})), children);\n }\n }]);\n\n return AjaxUploader;\n}(Component);\n\nexport default AjaxUploader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types:0 */\nimport React, { Component } from 'react';\nimport AjaxUpload from './AjaxUploader';\n\nfunction empty() {}\n\nvar Upload = /*#__PURE__*/function (_Component) {\n _inherits(Upload, _Component);\n\n var _super = _createSuper(Upload);\n\n function Upload() {\n var _this;\n\n _classCallCheck(this, Upload);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.uploader = void 0;\n\n _this.saveUploader = function (node) {\n _this.uploader = node;\n };\n\n return _this;\n }\n\n _createClass(Upload, [{\n key: \"abort\",\n value: function abort(file) {\n this.uploader.abort(file);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(AjaxUpload, _extends({}, this.props, {\n ref: this.saveUploader\n }));\n }\n }]);\n\n return Upload;\n}(Component);\n\nUpload.defaultProps = {\n component: 'span',\n prefixCls: 'rc-upload',\n data: {},\n headers: {},\n name: 'file',\n multipart: false,\n onStart: empty,\n onError: empty,\n onSuccess: empty,\n multiple: false,\n beforeUpload: null,\n customRequest: null,\n withCredentials: false,\n openFileDialogOnClick: true\n};\nexport default Upload;","import Upload from './Upload';\nexport default Upload;","// This icon file is generated automatically.\nvar FileTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\", \"fill\": primaryColor } }] }; }, \"name\": \"file\", \"theme\": \"twotone\" };\nexport default FileTwoTone;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FileTwoToneSvg from \"@ant-design/icons-svg/es/asn/FileTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\nvar FileTwoTone = function FileTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FileTwoToneSvg\n }));\n};\nFileTwoTone.displayName = 'FileTwoTone';\nexport default /*#__PURE__*/React.forwardRef(FileTwoTone);","// This icon file is generated automatically.\nvar PaperClipOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\" } }] }, \"name\": \"paper-clip\", \"theme\": \"outlined\" };\nexport default PaperClipOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PaperClipOutlinedSvg from \"@ant-design/icons-svg/es/asn/PaperClipOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PaperClipOutlined = function PaperClipOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PaperClipOutlinedSvg\n }));\n};\nPaperClipOutlined.displayName = 'PaperClipOutlined';\nexport default /*#__PURE__*/React.forwardRef(PaperClipOutlined);","// This icon file is generated automatically.\nvar PictureTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\", \"fill\": primaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M276 368a28 28 0 1056 0 28 28 0 10-56 0z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\", \"fill\": primaryColor } }] }; }, \"name\": \"picture\", \"theme\": \"twotone\" };\nexport default PictureTwoTone;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PictureTwoToneSvg from \"@ant-design/icons-svg/es/asn/PictureTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\nvar PictureTwoTone = function PictureTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PictureTwoToneSvg\n }));\n};\nPictureTwoTone.displayName = 'PictureTwoTone';\nexport default /*#__PURE__*/React.forwardRef(PictureTwoTone);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function file2Obj(file) {\n return Object.assign(Object.assign({}, file), {\n lastModified: file.lastModified,\n lastModifiedDate: file.lastModifiedDate,\n name: file.name,\n size: file.size,\n type: file.type,\n uid: file.uid,\n percent: 0,\n originFileObj: file\n });\n}\n/** Upload fileList. Replace file if exist or just push into it. */\nexport function updateFileList(file, fileList) {\n const nextFileList = _toConsumableArray(fileList);\n const fileIndex = nextFileList.findIndex(_ref => {\n let {\n uid\n } = _ref;\n return uid === file.uid;\n });\n if (fileIndex === -1) {\n nextFileList.push(file);\n } else {\n nextFileList[fileIndex] = file;\n }\n return nextFileList;\n}\nexport function getFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n return fileList.filter(item => item[matchKey] === file[matchKey])[0];\n}\nexport function removeFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n const removed = fileList.filter(item => item[matchKey] !== file[matchKey]);\n if (removed.length === fileList.length) {\n return null;\n }\n return removed;\n}\n// ==================== Default Image Preview ====================\nconst extname = function () {\n let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n const temp = url.split('/');\n const filename = temp[temp.length - 1];\n const filenameWithoutSuffix = filename.split(/#|\\?/)[0];\n return (/\\.[^./\\\\]*$/.exec(filenameWithoutSuffix) || [''])[0];\n};\nconst isImageFileType = type => type.indexOf('image/') === 0;\nexport const isImageUrl = file => {\n if (file.type && !file.thumbUrl) {\n return isImageFileType(file.type);\n }\n const url = file.thumbUrl || file.url || '';\n const extension = extname(url);\n if (/^data:image\\//.test(url) || /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(extension)) {\n return true;\n }\n if (/^data:/.test(url)) {\n // other file types of base64\n return false;\n }\n if (extension) {\n // other file types which have extension\n return false;\n }\n return true;\n};\nconst MEASURE_SIZE = 200;\nexport function previewImage(file) {\n return new Promise(resolve => {\n if (!file.type || !isImageFileType(file.type)) {\n resolve('');\n return;\n }\n const canvas = document.createElement('canvas');\n canvas.width = MEASURE_SIZE;\n canvas.height = MEASURE_SIZE;\n canvas.style.cssText = `position: fixed; left: 0; top: 0; width: ${MEASURE_SIZE}px; height: ${MEASURE_SIZE}px; z-index: 9999; display: none;`;\n document.body.appendChild(canvas);\n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n const {\n width,\n height\n } = img;\n let drawWidth = MEASURE_SIZE;\n let drawHeight = MEASURE_SIZE;\n let offsetX = 0;\n let offsetY = 0;\n if (width > height) {\n drawHeight = height * (MEASURE_SIZE / width);\n offsetY = -(drawHeight - drawWidth) / 2;\n } else {\n drawWidth = width * (MEASURE_SIZE / height);\n offsetX = -(drawWidth - drawHeight) / 2;\n }\n ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n const dataURL = canvas.toDataURL();\n document.body.removeChild(canvas);\n resolve(dataURL);\n };\n img.crossOrigin = 'anonymous';\n if (file.type.startsWith('image/svg+xml')) {\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n if (reader.result) img.src = reader.result;\n });\n reader.readAsDataURL(file);\n } else {\n img.src = window.URL.createObjectURL(file);\n }\n });\n}","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\nDownloadOutlined.displayName = 'DownloadOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownloadOutlined);","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n className: '',\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n style: {},\n trailColor: '#D9D9D9',\n trailWidth: 1,\n gapPosition: 'bottom'\n};\nexport var useTransitionDuration = function useTransitionDuration() {\n var pathsRef = useRef([]);\n var prevTimeStamp = useRef(null);\n useEffect(function () {\n var now = Date.now();\n var updated = false;\n pathsRef.current.forEach(function (path) {\n if (!path) {\n return;\n }\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n prevTimeStamp.current = Date.now();\n }\n });\n return pathsRef.current;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"percent\", \"prefixCls\", \"strokeColor\", \"strokeLinecap\", \"strokeWidth\", \"style\", \"trailColor\", \"trailWidth\", \"transition\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nvar Line = function Line(_ref) {\n var className = _ref.className,\n percent = _ref.percent,\n prefixCls = _ref.prefixCls,\n strokeColor = _ref.strokeColor,\n strokeLinecap = _ref.strokeLinecap,\n strokeWidth = _ref.strokeWidth,\n style = _ref.style,\n trailColor = _ref.trailColor,\n trailWidth = _ref.trailWidth,\n transition = _ref.transition,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // eslint-disable-next-line no-param-reassign\n delete restProps.gapPosition;\n var percentList = Array.isArray(percent) ? percent : [percent];\n var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n var paths = useTransitionDuration();\n var center = strokeWidth / 2;\n var right = 100 - strokeWidth / 2;\n var pathString = \"M \".concat(strokeLinecap === 'round' ? center : 0, \",\").concat(center, \"\\n L \").concat(strokeLinecap === 'round' ? right : 100, \",\").concat(center);\n var viewBoxString = \"0 0 100 \".concat(strokeWidth);\n var stackPtg = 0;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-line\"), className),\n viewBox: viewBoxString,\n preserveAspectRatio: \"none\",\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-line-trail\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: trailColor,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\"\n }), percentList.map(function (ptg, index) {\n var dashPercent = 1;\n switch (strokeLinecap) {\n case 'round':\n dashPercent = 1 - strokeWidth / 100;\n break;\n case 'square':\n dashPercent = 1 - strokeWidth / 2 / 100;\n break;\n default:\n dashPercent = 1;\n break;\n }\n var pathStyle = {\n strokeDasharray: \"\".concat(ptg * dashPercent, \"px, 100px\"),\n strokeDashoffset: \"-\".concat(stackPtg, \"px\"),\n transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear'\n };\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-line-path\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: color,\n strokeWidth: strokeWidth,\n fillOpacity: \"0\",\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n },\n style: pathStyle\n });\n }));\n};\nLine.defaultProps = defaultProps;\nLine.displayName = 'Line';\nexport default Line;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n/** Get unique id for accessibility usage */\nfunction getUUID() {\n var retId;\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default (function (id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_progress_\".concat(getUUID()));\n }, []);\n return id || innerId;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"steps\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { defaultProps, useTransitionDuration } from './common';\nimport useId from './hooks/useId';\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\nfunction toArray(value) {\n var mergedValue = value !== null && value !== void 0 ? value : [];\n return Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n}\nvar VIEW_BOX_SIZE = 100;\nvar getCircleStyle = function getCircleStyle(perimeter, perimeterWithoutGap, offset, percent, rotateDeg, gapDegree, gapPosition, strokeColor, strokeLinecap, strokeWidth) {\n var stepSpace = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 0;\n var offsetDeg = offset / 100 * 360 * ((360 - gapDegree) / 360);\n var positionDeg = gapDegree === 0 ? 0 : {\n bottom: 0,\n top: 180,\n left: 90,\n right: -90\n }[gapPosition];\n var strokeDashoffset = (100 - percent) / 100 * perimeterWithoutGap;\n // Fix percent accuracy when strokeLinecap is round\n // https://github.com/ant-design/ant-design/issues/35009\n if (strokeLinecap === 'round' && percent !== 100) {\n strokeDashoffset += strokeWidth / 2;\n // when percent is small enough (<= 1%), keep smallest value to avoid it's disappearance\n if (strokeDashoffset >= perimeterWithoutGap) {\n strokeDashoffset = perimeterWithoutGap - 0.01;\n }\n }\n return {\n stroke: typeof strokeColor === 'string' ? strokeColor : undefined,\n strokeDasharray: \"\".concat(perimeterWithoutGap, \"px \").concat(perimeter),\n strokeDashoffset: strokeDashoffset + stepSpace,\n transform: \"rotate(\".concat(rotateDeg + offsetDeg + positionDeg, \"deg)\"),\n transformOrigin: '0 0',\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s',\n fillOpacity: 0\n };\n};\nvar Circle = function Circle(_ref) {\n var id = _ref.id,\n prefixCls = _ref.prefixCls,\n steps = _ref.steps,\n strokeWidth = _ref.strokeWidth,\n trailWidth = _ref.trailWidth,\n _ref$gapDegree = _ref.gapDegree,\n gapDegree = _ref$gapDegree === void 0 ? 0 : _ref$gapDegree,\n gapPosition = _ref.gapPosition,\n trailColor = _ref.trailColor,\n strokeLinecap = _ref.strokeLinecap,\n style = _ref.style,\n className = _ref.className,\n strokeColor = _ref.strokeColor,\n percent = _ref.percent,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedId = useId(id);\n var gradientId = \"\".concat(mergedId, \"-gradient\");\n var radius = VIEW_BOX_SIZE / 2 - strokeWidth / 2;\n var perimeter = Math.PI * 2 * radius;\n var rotateDeg = gapDegree > 0 ? 90 + gapDegree / 2 : -90;\n var perimeterWithoutGap = perimeter * ((360 - gapDegree) / 360);\n var _ref2 = _typeof(steps) === 'object' ? steps : {\n count: steps,\n space: 2\n },\n stepCount = _ref2.count,\n stepSpace = _ref2.space;\n var circleStyle = getCircleStyle(perimeter, perimeterWithoutGap, 0, 100, rotateDeg, gapDegree, gapPosition, trailColor, strokeLinecap, strokeWidth);\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return color && _typeof(color) === 'object';\n });\n var paths = useTransitionDuration();\n var getStokeList = function getStokeList() {\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, ptg, rotateDeg, gapDegree, gapPosition, color, strokeLinecap, strokeWidth);\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke,\n strokeLinecap: strokeLinecap,\n strokeWidth: strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n }\n });\n }).reverse();\n };\n var getStepStokeList = function getStepStokeList() {\n // only show the first percent when pass steps\n var current = Math.round(stepCount * (percentList[0] / 100));\n var stepPtg = 100 / stepCount;\n var stackPtg = 0;\n return new Array(stepCount).fill(null).map(function (_, index) {\n var color = index <= current - 1 ? strokeColorList[0] : trailColor;\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, stepPtg, rotateDeg, gapDegree, gapPosition, color, 'butt', strokeWidth, stepSpace);\n stackPtg += (perimeterWithoutGap - circleStyleForStack.strokeDashoffset + stepSpace) * 100 / perimeterWithoutGap;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke\n // strokeLinecap={strokeLinecap}\n ,\n strokeWidth: strokeWidth,\n opacity: 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n paths[index] = elem;\n }\n });\n });\n };\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n viewBox: \"\".concat(-VIEW_BOX_SIZE / 2, \" \").concat(-VIEW_BOX_SIZE / 2, \" \").concat(VIEW_BOX_SIZE, \" \").concat(VIEW_BOX_SIZE),\n style: style,\n id: id,\n role: \"presentation\"\n }, restProps), gradient && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: gradientId,\n x1: \"100%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"0%\"\n }, Object.keys(gradient).sort(function (a, b) {\n return stripPercentToNumber(a) - stripPercentToNumber(b);\n }).map(function (key, index) {\n return /*#__PURE__*/React.createElement(\"stop\", {\n key: index,\n offset: key,\n stopColor: gradient[key]\n });\n }))), !stepCount && /*#__PURE__*/React.createElement(\"circle\", {\n className: \"\".concat(prefixCls, \"-circle-trail\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n strokeWidth: trailWidth || strokeWidth,\n style: circleStyle\n }), stepCount ? getStepStokeList() : getStokeList());\n};\nCircle.defaultProps = defaultProps;\nCircle.displayName = 'Circle';\nexport default Circle;","import { presetPrimaryColors } from '@ant-design/colors';\nimport warning from '../_util/warning';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n if (progress > 100) {\n return 100;\n }\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n let {\n success,\n successPercent\n } = _ref;\n let percent = successPercent;\n /** @deprecated Use `percent` instead */\n if (success && 'progress' in success) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.') : void 0;\n percent = success.progress;\n }\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n return percent;\n}\nexport const getPercentage = _ref2 => {\n let {\n percent,\n success,\n successPercent\n } = _ref2;\n const realSuccessPercent = validProgress(getSuccessPercent({\n success,\n successPercent\n }));\n return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n};\nexport const getStrokeColor = _ref3 => {\n let {\n success = {},\n strokeColor\n } = _ref3;\n const {\n strokeColor: successColor\n } = success;\n return [successColor || presetPrimaryColors.green, strokeColor || null];\n};","import classNames from 'classnames';\nimport { Circle as RCCircle } from 'rc-progress';\nimport * as React from 'react';\nimport Tooltip from '../tooltip';\nimport { getPercentage, getStrokeColor } from './utils';\nconst CIRCLE_MIN_STROKE_WIDTH = 3;\nconst getMinPercent = width => CIRCLE_MIN_STROKE_WIDTH / width * 100;\nconst Circle = props => {\n const {\n prefixCls,\n width = 120,\n strokeWidth = Math.max(getMinPercent(width), 6),\n trailColor = null,\n strokeLinecap = 'round',\n gapPosition,\n gapDegree,\n type,\n children,\n success\n } = props;\n const circleStyle = {\n width,\n height: width,\n fontSize: width * 0.15 + 6\n };\n const realGapDegree = React.useMemo(() => {\n // Support gapDeg = 0 when type = 'dashboard'\n if (gapDegree || gapDegree === 0) {\n return gapDegree;\n }\n if (type === 'dashboard') {\n return 75;\n }\n return undefined;\n }, [gapDegree, type]);\n const gapPos = gapPosition || type === 'dashboard' && 'bottom' || undefined;\n // using className to style stroke color\n const isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]';\n const strokeColor = getStrokeColor({\n success,\n strokeColor: props.strokeColor\n });\n const wrapperClassName = classNames(`${prefixCls}-inner`, {\n [`${prefixCls}-circle-gradient`]: isGradient\n });\n const circleContent = /*#__PURE__*/React.createElement(RCCircle, {\n percent: getPercentage(props),\n strokeWidth: strokeWidth,\n trailWidth: strokeWidth,\n strokeColor: strokeColor,\n strokeLinecap: strokeLinecap,\n trailColor: trailColor,\n prefixCls: prefixCls,\n gapDegree: realGapDegree,\n gapPosition: gapPos\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n style: circleStyle\n }, width <= 20 ? /*#__PURE__*/React.createElement(Tooltip, {\n title: children\n }, circleContent) : /*#__PURE__*/React.createElement(React.Fragment, null, circleContent, children));\n};\nexport default Circle;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport * as React from 'react';\nimport { getSuccessPercent, validProgress } from './utils';\n/**\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"75%\": \"#009900\",\n * \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * \"25%\": \"#66FF00\",\n * \"100%\": \"#ffffff\"\n * }\n */\nexport const sortGradient = gradients => {\n let tempArr = [];\n Object.keys(gradients).forEach(key => {\n const formattedKey = parseFloat(key.replace(/%/g, ''));\n if (!isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort((a, b) => a.key - b.key);\n return tempArr.map(_ref => {\n let {\n key,\n value\n } = _ref;\n return `${value} ${key}%`;\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\nexport const handleGradient = (strokeColor, directionConfig) => {\n const {\n from = presetPrimaryColors.blue,\n to = presetPrimaryColors.blue,\n direction = directionConfig === 'rtl' ? 'to left' : 'to right'\n } = strokeColor,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n if (Object.keys(rest).length !== 0) {\n const sortedGradients = sortGradient(rest);\n return {\n backgroundImage: `linear-gradient(${direction}, ${sortedGradients})`\n };\n }\n return {\n backgroundImage: `linear-gradient(${direction}, ${from}, ${to})`\n };\n};\nconst Line = props => {\n const {\n prefixCls,\n direction: directionConfig,\n percent,\n strokeWidth,\n size,\n strokeColor,\n strokeLinecap = 'round',\n children,\n trailColor = null,\n success\n } = props;\n const backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n backgroundColor: strokeColor\n };\n const borderRadius = strokeLinecap === 'square' || strokeLinecap === 'butt' ? 0 : undefined;\n const trailStyle = {\n backgroundColor: trailColor || undefined,\n borderRadius\n };\n const percentStyle = Object.assign({\n width: `${validProgress(percent)}%`,\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius\n }, backgroundProps);\n const successPercent = getSuccessPercent(props);\n const successPercentStyle = {\n width: `${validProgress(successPercent)}%`,\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius,\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-outer`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner`,\n style: trailStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-bg`,\n style: percentStyle\n }), successPercent !== undefined ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-success-bg`,\n style: successPercentStyle\n }) : null)), children);\n};\nexport default Line;","import classNames from 'classnames';\nimport * as React from 'react';\nconst Steps = props => {\n const {\n size,\n steps,\n percent = 0,\n strokeWidth = 8,\n strokeColor,\n trailColor = null,\n prefixCls,\n children\n } = props;\n const current = Math.round(steps * (percent / 100));\n const stepWidth = size === 'small' ? 2 : 14;\n const styledSteps = new Array(steps);\n for (let i = 0; i < steps; i++) {\n const color = Array.isArray(strokeColor) ? strokeColor[i] : strokeColor;\n styledSteps[i] = /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: classNames(`${prefixCls}-steps-item`, {\n [`${prefixCls}-steps-item-active`]: i <= current - 1\n }),\n style: {\n backgroundColor: i <= current - 1 ? color : trailColor,\n width: stepWidth,\n height: strokeWidth\n }\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-steps-outer`\n }, styledSteps, children);\n};\nexport default Steps;","import { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst antProgressActive = new Keyframes('antProgressActive', {\n '0%': {\n transform: 'translateX(-100%) scaleX(0)',\n opacity: 0.1\n },\n '20%': {\n transform: 'translateX(-100%) scaleX(0)',\n opacity: 0.5\n },\n to: {\n transform: 'translateX(0) scaleX(1)',\n opacity: 0\n }\n});\nconst genBaseStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-line': {\n position: 'relative',\n width: '100%',\n fontSize: token.fontSize,\n marginInlineEnd: token.marginXS,\n marginBottom: token.marginXS\n },\n [`${progressCls}-outer`]: {\n display: 'inline-block',\n width: '100%'\n },\n [`&${progressCls}-show-info`]: {\n [`${progressCls}-outer`]: {\n marginInlineEnd: `calc(-2em - ${token.marginXS}px)`,\n paddingInlineEnd: `calc(2em + ${token.paddingXS}px)`\n }\n },\n [`${progressCls}-inner`]: {\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n overflow: 'hidden',\n verticalAlign: 'middle',\n backgroundColor: token.progressRemainingColor,\n borderRadius: token.progressLineRadius\n },\n [`${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorInfo\n }\n },\n [`&${progressCls}-success-bg, ${progressCls}-bg`]: {\n position: 'relative',\n backgroundColor: token.colorInfo,\n borderRadius: token.progressLineRadius,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`\n },\n [`${progressCls}-success-bg`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n display: 'inline-block',\n width: '2em',\n marginInlineStart: token.marginXS,\n color: token.progressInfoTextColor,\n lineHeight: 1,\n whiteSpace: 'nowrap',\n textAlign: 'start',\n verticalAlign: 'middle',\n wordBreak: 'normal',\n [iconPrefixCls]: {\n fontSize: token.fontSize\n }\n },\n [`&${progressCls}-status-active`]: {\n [`${progressCls}-bg::before`]: {\n position: 'absolute',\n inset: 0,\n backgroundColor: token.colorBgContainer,\n borderRadius: token.progressLineRadius,\n opacity: 0,\n animationName: antProgressActive,\n animationDuration: token.progressActiveMotionDuration,\n animationTimingFunction: token.motionEaseOutQuint,\n animationIterationCount: 'infinite',\n content: '\"\"'\n }\n },\n [`&${progressCls}-status-exception`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorError\n },\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`&${progressCls}-status-exception ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorError\n }\n },\n [`&${progressCls}-status-success`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n },\n [`&${progressCls}-status-success ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorSuccess\n }\n }\n })\n };\n};\nconst genCircleStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-circle-trail`]: {\n stroke: token.progressRemainingColor\n },\n [`&${progressCls}-circle ${progressCls}-inner`]: {\n position: 'relative',\n lineHeight: 1,\n backgroundColor: 'transparent'\n },\n [`&${progressCls}-circle ${progressCls}-text`]: {\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: 0,\n width: '100%',\n margin: 0,\n padding: 0,\n color: token.colorText,\n lineHeight: 1,\n whiteSpace: 'normal',\n textAlign: 'center',\n transform: 'translateY(-50%)',\n [iconPrefixCls]: {\n fontSize: `${token.fontSize / token.fontSizeSM}em`\n }\n },\n [`${progressCls}-circle&-status-exception`]: {\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`${progressCls}-circle&-status-success`]: {\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n }\n },\n [`${progressCls}-inline-circle`]: {\n lineHeight: 1,\n [`${progressCls}-inner`]: {\n verticalAlign: 'bottom'\n }\n }\n };\n};\nconst genStepStyle = token => {\n const {\n componentCls: progressCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-steps`]: {\n display: 'inline-block',\n '&-outer': {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n '&-item': {\n flexShrink: 0,\n minWidth: token.progressStepMinWidth,\n marginInlineEnd: token.progressStepMarginInlineEnd,\n backgroundColor: token.progressRemainingColor,\n transition: `all ${token.motionDurationSlow}`,\n '&-active': {\n backgroundColor: token.colorInfo\n }\n }\n }\n }\n };\n};\nconst genSmallLine = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-small&-line, ${progressCls}-small&-line ${progressCls}-text ${iconPrefixCls}`]: {\n fontSize: token.fontSizeSM\n }\n }\n };\n};\nexport default genComponentStyleHook('Progress', token => {\n const progressStepMarginInlineEnd = token.marginXXS / 2;\n const progressToken = mergeToken(token, {\n progressLineRadius: 100,\n progressInfoTextColor: token.colorText,\n progressDefaultColor: token.colorInfo,\n progressRemainingColor: token.colorFillSecondary,\n progressStepMarginInlineEnd,\n progressStepMinWidth: progressStepMarginInlineEnd,\n progressActiveMotionDuration: '2.4s'\n });\n return [genBaseStyle(progressToken), genCircleStyle(progressToken), genStepStyle(progressToken), genSmallLine(progressToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nimport Circle from './Circle';\nimport Line from './Line';\nimport Steps from './Steps';\nimport useStyle from './style';\nimport { getSuccessPercent, validProgress } from './utils';\nconst ProgressTypes = ['line', 'circle', 'dashboard'];\nconst ProgressStatuses = ['normal', 'exception', 'active', 'success'];\nconst Progress = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n steps,\n strokeColor,\n percent = 0,\n size = 'default',\n showInfo = true,\n type = 'line',\n status,\n format\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"steps\", \"strokeColor\", \"percent\", \"size\", \"showInfo\", \"type\", \"status\", \"format\"]);\n const percentNumber = React.useMemo(() => {\n var _a, _b;\n const successPercent = getSuccessPercent(props);\n return parseInt(successPercent !== undefined ? (_a = successPercent !== null && successPercent !== void 0 ? successPercent : 0) === null || _a === void 0 ? void 0 : _a.toString() : (_b = percent !== null && percent !== void 0 ? percent : 0) === null || _b === void 0 ? void 0 : _b.toString(), 10);\n }, [percent, props.success, props.successPercent]);\n const progressStatus = React.useMemo(() => {\n if (!ProgressStatuses.includes(status) && percentNumber >= 100) {\n return 'success';\n }\n return status || 'normal';\n }, [status, percentNumber]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('progress', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const progressInfo = React.useMemo(() => {\n if (!showInfo) {\n return null;\n }\n const successPercent = getSuccessPercent(props);\n let text;\n const textFormatter = format || (number => `${number}%`);\n const isLineType = type === 'line';\n if (format || progressStatus !== 'exception' && progressStatus !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus === 'exception') {\n text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n } else if (progressStatus === 'success') {\n text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-text`,\n title: typeof text === 'string' ? text : undefined\n }, text);\n }, [showInfo, percentNumber, progressStatus, type, prefixCls, format]);\n process.env.NODE_ENV !== \"production\" ? warning(!('successPercent' in props), 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.') : void 0;\n const strokeColorNotArray = Array.isArray(strokeColor) ? strokeColor[0] : strokeColor;\n const strokeColorNotGradient = typeof strokeColor === 'string' || Array.isArray(strokeColor) ? strokeColor : undefined;\n let progress;\n // Render progress shape\n if (type === 'line') {\n progress = steps ? /*#__PURE__*/React.createElement(Steps, Object.assign({}, props, {\n strokeColor: strokeColorNotGradient,\n prefixCls: prefixCls,\n steps: steps\n }), progressInfo) : /*#__PURE__*/React.createElement(Line, Object.assign({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n direction: direction\n }), progressInfo);\n } else if (type === 'circle' || type === 'dashboard') {\n progress = /*#__PURE__*/React.createElement(Circle, Object.assign({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n progressStatus: progressStatus\n }), progressInfo);\n }\n const classString = classNames(prefixCls, {\n [`${prefixCls}-inline-circle`]: type === 'circle' && props.width <= 20,\n [`${prefixCls}-${type === 'dashboard' && 'circle' || steps && 'steps' || type}`]: true,\n [`${prefixCls}-status-${progressStatus}`]: true,\n [`${prefixCls}-show-info`]: showInfo,\n [`${prefixCls}-${size}`]: size,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString,\n role: \"progressbar\"\n }, omit(restProps, ['trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'success', 'successPercent'])), progress));\n};\nif (process.env.NODE_ENV !== 'production') {\n Progress.displayName = 'Progress';\n}\nexport default Progress;","import Progress from './progress';\nexport default Progress;","import DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport DownloadOutlined from \"@ant-design/icons/es/icons/DownloadOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport Progress from '../../progress';\nimport Tooltip from '../../tooltip';\nconst ListItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n prefixCls,\n className,\n style,\n locale,\n listType,\n file,\n items,\n progress: progressProps,\n iconRender,\n actionIconRender,\n itemRender,\n isImgUrl,\n showPreviewIcon,\n showRemoveIcon,\n showDownloadIcon,\n previewIcon: customPreviewIcon,\n removeIcon: customRemoveIcon,\n downloadIcon: customDownloadIcon,\n onPreview,\n onDownload,\n onClose\n } = _ref;\n var _a, _b;\n // Status: which will ignore `removed` status\n const {\n status\n } = file;\n const [mergedStatus, setMergedStatus] = React.useState(status);\n React.useEffect(() => {\n if (status !== 'removed') {\n setMergedStatus(status);\n }\n }, [status]);\n // Delay to show the progress bar\n const [showProgress, setShowProgress] = React.useState(false);\n const progressRafRef = React.useRef(null);\n React.useEffect(() => {\n progressRafRef.current = setTimeout(() => {\n setShowProgress(true);\n }, 300);\n return () => {\n if (progressRafRef.current) {\n clearTimeout(progressRafRef.current);\n }\n };\n }, []);\n const iconNode = iconRender(file);\n let icon = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, iconNode);\n if (listType === 'picture' || listType === 'picture-card') {\n if (mergedStatus === 'uploading' || !file.thumbUrl && !file.url) {\n const uploadingClassName = classNames({\n [`${prefixCls}-list-item-thumbnail`]: true,\n [`${prefixCls}-list-item-file`]: mergedStatus !== 'uploading'\n });\n icon = /*#__PURE__*/React.createElement(\"div\", {\n className: uploadingClassName\n }, iconNode);\n } else {\n const thumbnail = (isImgUrl === null || isImgUrl === void 0 ? void 0 : isImgUrl(file)) ? /*#__PURE__*/React.createElement(\"img\", {\n src: file.thumbUrl || file.url,\n alt: file.name,\n className: `${prefixCls}-list-item-image`,\n crossOrigin: file.crossOrigin\n }) : iconNode;\n const aClassName = classNames({\n [`${prefixCls}-list-item-thumbnail`]: true,\n [`${prefixCls}-list-item-file`]: isImgUrl && !isImgUrl(file)\n });\n icon = /*#__PURE__*/React.createElement(\"a\", {\n className: aClassName,\n onClick: e => onPreview(file, e),\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, thumbnail);\n }\n }\n const listItemClassName = classNames(`${prefixCls}-list-item`, `${prefixCls}-list-item-${mergedStatus}`);\n const linkProps = typeof file.linkProps === 'string' ? JSON.parse(file.linkProps) : file.linkProps;\n const removeIcon = showRemoveIcon ? actionIconRender((typeof customRemoveIcon === 'function' ? customRemoveIcon(file) : customRemoveIcon) || /*#__PURE__*/React.createElement(DeleteOutlined, null), () => onClose(file), prefixCls, locale.removeFile) : null;\n const downloadIcon = showDownloadIcon && mergedStatus === 'done' ? actionIconRender((typeof customDownloadIcon === 'function' ? customDownloadIcon(file) : customDownloadIcon) || /*#__PURE__*/React.createElement(DownloadOutlined, null), () => onDownload(file), prefixCls, locale.downloadFile) : null;\n const downloadOrDelete = listType !== 'picture-card' && /*#__PURE__*/React.createElement(\"span\", {\n key: \"download-delete\",\n className: classNames(`${prefixCls}-list-item-actions`, {\n picture: listType === 'picture'\n })\n }, downloadIcon, removeIcon);\n const listItemNameClass = classNames(`${prefixCls}-list-item-name`);\n const fileName = file.url ? [/*#__PURE__*/React.createElement(\"a\", Object.assign({\n key: \"view\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: listItemNameClass,\n title: file.name\n }, linkProps, {\n href: file.url,\n onClick: e => onPreview(file, e)\n }), file.name), downloadOrDelete] : [/*#__PURE__*/React.createElement(\"span\", {\n key: \"view\",\n className: listItemNameClass,\n onClick: e => onPreview(file, e),\n title: file.name\n }, file.name), downloadOrDelete];\n const previewStyle = {\n pointerEvents: 'none',\n opacity: 0.5\n };\n const previewIcon = showPreviewIcon ? /*#__PURE__*/React.createElement(\"a\", {\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style: file.url || file.thumbUrl ? undefined : previewStyle,\n onClick: e => onPreview(file, e),\n title: locale.previewFile\n }, typeof customPreviewIcon === 'function' ? customPreviewIcon(file) : customPreviewIcon || /*#__PURE__*/React.createElement(EyeOutlined, null)) : null;\n const pictureCardActions = listType === 'picture-card' && mergedStatus !== 'uploading' && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-list-item-actions`\n }, previewIcon, mergedStatus === 'done' && downloadIcon, removeIcon);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const dom = /*#__PURE__*/React.createElement(\"div\", {\n className: listItemClassName\n }, icon, fileName, pictureCardActions, showProgress && /*#__PURE__*/React.createElement(CSSMotion, {\n motionName: `${rootPrefixCls}-fade`,\n visible: mergedStatus === 'uploading',\n motionDeadline: 2000\n }, _ref2 => {\n let {\n className: motionClassName\n } = _ref2;\n // show loading icon if upload progress listener is disabled\n const loadingProgress = 'percent' in file ? /*#__PURE__*/React.createElement(Progress, Object.assign({}, progressProps, {\n type: \"line\",\n percent: file.percent\n })) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-list-item-progress`, motionClassName)\n }, loadingProgress);\n }));\n const message = file.response && typeof file.response === 'string' ? file.response : ((_a = file.error) === null || _a === void 0 ? void 0 : _a.statusText) || ((_b = file.error) === null || _b === void 0 ? void 0 : _b.message) || locale.uploadError;\n const item = mergedStatus === 'error' ? /*#__PURE__*/React.createElement(Tooltip, {\n title: message,\n getPopupContainer: node => node.parentNode\n }, dom) : dom;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-list-item-container`, className),\n style: style,\n ref: ref\n }, itemRender ? itemRender(item, file, items, {\n download: onDownload.bind(null, file),\n preview: onPreview.bind(null, file),\n remove: onClose.bind(null, file)\n }) : item);\n});\nexport default ListItem;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport FileTwoTone from \"@ant-design/icons/es/icons/FileTwoTone\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport PaperClipOutlined from \"@ant-design/icons/es/icons/PaperClipOutlined\";\nimport PictureTwoTone from \"@ant-design/icons/es/icons/PictureTwoTone\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport Button from '../../button';\nimport { ConfigContext } from '../../config-provider';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport initCollapseMotion from '../../_util/motion';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport { isImageUrl, previewImage } from '../utils';\nimport ListItem from './ListItem';\nconst InternalUploadList = (props, ref) => {\n const {\n listType = 'text',\n previewFile = previewImage,\n onPreview,\n onDownload,\n onRemove,\n locale,\n iconRender,\n isImageUrl: isImgUrl = isImageUrl,\n prefixCls: customizePrefixCls,\n items = [],\n showPreviewIcon = true,\n showRemoveIcon = true,\n showDownloadIcon = false,\n removeIcon,\n previewIcon,\n downloadIcon,\n progress = {\n strokeWidth: 2,\n showInfo: false\n },\n appendAction,\n appendActionVisible = true,\n itemRender\n } = props;\n const forceUpdate = useForceUpdate();\n const [motionAppear, setMotionAppear] = React.useState(false);\n // ============================= Effect =============================\n React.useEffect(() => {\n if (listType !== 'picture' && listType !== 'picture-card') {\n return;\n }\n (items || []).forEach(file => {\n if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File || file.originFileObj instanceof Blob) || file.thumbUrl !== undefined) {\n return;\n }\n file.thumbUrl = '';\n if (previewFile) {\n previewFile(file.originFileObj).then(previewDataUrl => {\n // Need append '' to avoid dead loop\n file.thumbUrl = previewDataUrl || '';\n forceUpdate();\n });\n }\n });\n }, [listType, items, previewFile]);\n React.useEffect(() => {\n setMotionAppear(true);\n }, []);\n // ============================= Events =============================\n const onInternalPreview = (file, e) => {\n if (!onPreview) {\n return;\n }\n e === null || e === void 0 ? void 0 : e.preventDefault();\n return onPreview(file);\n };\n const onInternalDownload = file => {\n if (typeof onDownload === 'function') {\n onDownload(file);\n } else if (file.url) {\n window.open(file.url);\n }\n };\n const onInternalClose = file => {\n onRemove === null || onRemove === void 0 ? void 0 : onRemove(file);\n };\n const internalIconRender = file => {\n if (iconRender) {\n return iconRender(file, listType);\n }\n const isLoading = file.status === 'uploading';\n const fileIcon = isImgUrl && isImgUrl(file) ? /*#__PURE__*/React.createElement(PictureTwoTone, null) : /*#__PURE__*/React.createElement(FileTwoTone, null);\n let icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : /*#__PURE__*/React.createElement(PaperClipOutlined, null);\n if (listType === 'picture') {\n icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : fileIcon;\n } else if (listType === 'picture-card') {\n icon = isLoading ? locale.uploading : fileIcon;\n }\n return icon;\n };\n const actionIconRender = (customIcon, callback, prefixCls, title) => {\n const btnProps = {\n type: 'text',\n size: 'small',\n title,\n onClick: e => {\n callback();\n if (isValidElement(customIcon) && customIcon.props.onClick) {\n customIcon.props.onClick(e);\n }\n },\n className: `${prefixCls}-list-item-action`\n };\n if (isValidElement(customIcon)) {\n const btnIcon = cloneElement(customIcon, Object.assign(Object.assign({}, customIcon.props), {\n onClick: () => {}\n }));\n return /*#__PURE__*/React.createElement(Button, Object.assign({}, btnProps, {\n icon: btnIcon\n }));\n }\n return /*#__PURE__*/React.createElement(Button, Object.assign({}, btnProps), /*#__PURE__*/React.createElement(\"span\", null, customIcon));\n };\n // ============================== Ref ===============================\n // Test needs\n React.useImperativeHandle(ref, () => ({\n handlePreview: onInternalPreview,\n handleDownload: onInternalDownload\n }));\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n // ============================= Render =============================\n const prefixCls = getPrefixCls('upload', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const listClassNames = classNames({\n [`${prefixCls}-list`]: true,\n [`${prefixCls}-list-${listType}`]: true\n });\n // >>> Motion config\n const motionKeyList = _toConsumableArray(items.map(file => ({\n key: file.uid,\n file\n })));\n const animationDirection = listType === 'picture-card' ? 'animate-inline' : 'animate';\n // const transitionName = list.length === 0 ? '' : `${prefixCls}-${animationDirection}`;\n let motionConfig = {\n motionDeadline: 2000,\n motionName: `${prefixCls}-${animationDirection}`,\n keys: motionKeyList,\n motionAppear\n };\n const listItemMotion = useMemo(() => {\n const motion = Object.assign({}, initCollapseMotion(rootPrefixCls));\n delete motion.onAppearEnd;\n delete motion.onEnterEnd;\n delete motion.onLeaveEnd;\n return motion;\n }, [rootPrefixCls]);\n if (listType !== 'picture-card') {\n motionConfig = Object.assign(Object.assign({}, listItemMotion), motionConfig);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listClassNames\n }, /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({}, motionConfig, {\n component: false\n }), _ref => {\n let {\n key,\n file,\n className: motionClassName,\n style: motionStyle\n } = _ref;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: key,\n locale: locale,\n prefixCls: prefixCls,\n className: motionClassName,\n style: motionStyle,\n file: file,\n items: items,\n progress: progress,\n listType: listType,\n isImgUrl: isImgUrl,\n showPreviewIcon: showPreviewIcon,\n showRemoveIcon: showRemoveIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: internalIconRender,\n actionIconRender: actionIconRender,\n itemRender: itemRender,\n onPreview: onInternalPreview,\n onDownload: onInternalDownload,\n onClose: onInternalClose\n });\n }), appendAction && /*#__PURE__*/React.createElement(CSSMotion, Object.assign({}, motionConfig, {\n visible: appendActionVisible,\n forceRender: true\n }), _ref2 => {\n let {\n className: motionClassName,\n style: motionStyle\n } = _ref2;\n return cloneElement(appendAction, oriProps => ({\n className: classNames(oriProps.className, motionClassName),\n style: Object.assign(Object.assign(Object.assign({}, motionStyle), {\n // prevent the element has hover css pseudo-class that may cause animation to end prematurely.\n pointerEvents: motionClassName ? 'none' : undefined\n }), oriProps.style)\n }));\n }));\n};\nconst UploadList = /*#__PURE__*/React.forwardRef(InternalUploadList);\nif (process.env.NODE_ENV !== 'production') {\n UploadList.displayName = 'UploadList';\n}\nexport default UploadList;","const genDraggerStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-drag`]: {\n position: 'relative',\n width: '100%',\n height: '100%',\n textAlign: 'center',\n background: token.colorFillAlter,\n border: `${token.lineWidth}px dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [componentCls]: {\n padding: `${token.padding}px 0`\n },\n [`${componentCls}-btn`]: {\n display: 'table',\n width: '100%',\n height: '100%',\n outline: 'none'\n },\n [`${componentCls}-drag-container`]: {\n display: 'table-cell',\n verticalAlign: 'middle'\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n borderColor: token.colorPrimaryHover\n },\n [`p${componentCls}-drag-icon`]: {\n marginBottom: token.margin,\n [iconCls]: {\n color: token.colorPrimary,\n fontSize: token.uploadThumbnailSize\n }\n },\n [`p${componentCls}-text`]: {\n margin: `0 0 ${token.marginXXS}px`,\n color: token.colorTextHeading,\n fontSize: token.fontSizeLG\n },\n [`p${componentCls}-hint`]: {\n color: token.colorTextDescription,\n fontSize: token.fontSize\n },\n // ===================== Disabled =====================\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`p${componentCls}-drag-icon ${iconCls},\n p${componentCls}-text,\n p${componentCls}-hint\n `]: {\n color: token.colorTextDisabled\n }\n }\n }\n }\n };\n};\nexport default genDraggerStyle;","import { clearFix, textEllipsis } from '../../style';\nconst genListStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n fontSize,\n lineHeight\n } = token;\n const itemCls = `${componentCls}-list-item`;\n const actionsCls = `${itemCls}-actions`;\n const actionCls = `${itemCls}-action`;\n const listItemHeightSM = Math.round(fontSize * lineHeight);\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-list`]: Object.assign(Object.assign({}, clearFix()), {\n lineHeight: token.lineHeight,\n [itemCls]: {\n position: 'relative',\n height: token.lineHeight * fontSize,\n marginTop: token.marginXS,\n fontSize,\n display: 'flex',\n alignItems: 'center',\n transition: `background-color ${token.motionDurationSlow}`,\n '&:hover': {\n backgroundColor: token.controlItemBgHover\n },\n [`${itemCls}-name`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${token.paddingXS}px`,\n lineHeight,\n flex: 'auto',\n transition: `all ${token.motionDurationSlow}`\n }),\n [actionsCls]: {\n [actionCls]: {\n opacity: 0\n },\n [`${actionCls}${antCls}-btn-sm`]: {\n height: listItemHeightSM,\n border: 0,\n lineHeight: 1,\n // FIXME: should not override small button\n '> span': {\n transform: 'scale(1)'\n }\n },\n [`\n ${actionCls}:focus,\n &.picture ${actionCls}\n `]: {\n opacity: 1\n },\n [iconCls]: {\n color: token.colorTextDescription,\n transition: `all ${token.motionDurationSlow}`\n },\n [`&:hover ${iconCls}`]: {\n color: token.colorText\n }\n },\n [`${componentCls}-icon ${iconCls}`]: {\n color: token.colorTextDescription,\n fontSize\n },\n [`${itemCls}-progress`]: {\n position: 'absolute',\n bottom: -token.uploadProgressOffset,\n width: '100%',\n paddingInlineStart: fontSize + token.paddingXS,\n fontSize,\n lineHeight: 0,\n pointerEvents: 'none',\n '> div': {\n margin: 0\n }\n }\n },\n [`${itemCls}:hover ${actionCls}`]: {\n opacity: 1,\n color: token.colorText\n },\n [`${itemCls}-error`]: {\n color: token.colorError,\n [`${itemCls}-name, ${componentCls}-icon ${iconCls}`]: {\n color: token.colorError\n },\n [actionsCls]: {\n [`${iconCls}, ${iconCls}:hover`]: {\n color: token.colorError\n },\n [actionCls]: {\n opacity: 1\n }\n }\n },\n [`${componentCls}-list-item-container`]: {\n transition: `opacity ${token.motionDurationSlow}, height ${token.motionDurationSlow}`,\n // For smooth removing animation\n '&::before': {\n display: 'table',\n width: 0,\n height: 0,\n content: '\"\"'\n }\n }\n })\n }\n };\n};\nexport default genListStyle;","import { Keyframes } from '@ant-design/cssinjs';\nconst uploadAnimateInlineIn = new Keyframes('uploadAnimateInlineIn', {\n from: {\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n opacity: 0\n }\n});\nconst uploadAnimateInlineOut = new Keyframes('uploadAnimateInlineOut', {\n to: {\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n opacity: 0\n }\n});\n// =========================== Motion ===========================\nconst genMotionStyle = token => {\n const {\n componentCls\n } = token;\n const inlineCls = `${componentCls}-animate-inline`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${inlineCls}-appear, ${inlineCls}-enter, ${inlineCls}-leave`]: {\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseInOutCirc,\n animationFillMode: 'forwards'\n },\n [`${inlineCls}-appear, ${inlineCls}-enter`]: {\n animationName: uploadAnimateInlineIn\n },\n [`${inlineCls}-leave`]: {\n animationName: uploadAnimateInlineOut\n }\n }\n }, uploadAnimateInlineIn, uploadAnimateInlineOut];\n};\nexport default genMotionStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, textEllipsis } from '../../style';\nconst genPictureStyle = token => {\n const {\n componentCls,\n iconCls,\n uploadThumbnailSize,\n uploadProgressOffset\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n return {\n [`${componentCls}-wrapper`]: {\n // ${listCls} 增加优先级\n [`${listCls}${listCls}-picture, ${listCls}${listCls}-picture-card`]: {\n [itemCls]: {\n position: 'relative',\n height: uploadThumbnailSize + token.lineWidth * 2 + token.paddingXS * 2,\n padding: token.paddingXS,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n '&:hover': {\n background: 'transparent'\n },\n [`${itemCls}-thumbnail`]: Object.assign(Object.assign({}, textEllipsis), {\n width: uploadThumbnailSize,\n height: uploadThumbnailSize,\n lineHeight: `${uploadThumbnailSize + token.paddingSM}px`,\n textAlign: 'center',\n flex: 'none',\n [iconCls]: {\n fontSize: token.fontSizeHeading2,\n color: token.colorPrimary\n },\n img: {\n display: 'block',\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n }\n }),\n [`${itemCls}-progress`]: {\n bottom: uploadProgressOffset,\n width: `calc(100% - ${token.paddingSM * 2}px)`,\n marginTop: 0,\n paddingInlineStart: uploadThumbnailSize + token.paddingXS\n }\n },\n [`${itemCls}-error`]: {\n borderColor: token.colorError,\n // Adjust the color of the error icon : https://github.com/ant-design/ant-design/pull/24160\n [`${itemCls}-thumbnail ${iconCls}`]: {\n [`svg path[fill='#e6f7ff']`]: {\n fill: token.colorErrorBg\n },\n [`svg path[fill='#1890ff']`]: {\n fill: token.colorError\n }\n }\n },\n [`${itemCls}-uploading`]: {\n borderStyle: 'dashed',\n [`${itemCls}-name`]: {\n marginBottom: uploadProgressOffset\n }\n }\n }\n }\n };\n};\nconst genPictureCardStyle = token => {\n const {\n componentCls,\n iconCls,\n fontSizeLG,\n colorTextLightSolid\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n const uploadPictureCardSize = token.uploadPicCardSize;\n return {\n [`${componentCls}-wrapper${componentCls}-picture-card-wrapper`]: Object.assign(Object.assign({}, clearFix()), {\n display: 'inline-block',\n width: '100%',\n [`${componentCls}${componentCls}-select`]: {\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n marginInlineEnd: token.marginXS,\n marginBottom: token.marginXS,\n textAlign: 'center',\n verticalAlign: 'top',\n backgroundColor: token.colorFillAlter,\n border: `${token.lineWidth}px dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [`> ${componentCls}`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n textAlign: 'center'\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n borderColor: token.colorPrimary\n }\n },\n // list\n [`${listCls}${listCls}-picture-card`]: {\n [`${listCls}-item-container`]: {\n display: 'inline-block',\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n marginBlock: `0 ${token.marginXS}px`,\n marginInline: `0 ${token.marginXS}px`,\n verticalAlign: 'top'\n },\n '&::after': {\n display: 'none'\n },\n [itemCls]: {\n height: '100%',\n margin: 0,\n '&::before': {\n position: 'absolute',\n zIndex: 1,\n width: `calc(100% - ${token.paddingXS * 2}px)`,\n height: `calc(100% - ${token.paddingXS * 2}px)`,\n backgroundColor: token.colorBgMask,\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n content: '\" \"'\n }\n },\n [`${itemCls}:hover`]: {\n [`&::before, ${itemCls}-actions`]: {\n opacity: 1\n }\n },\n [`${itemCls}-actions`]: {\n position: 'absolute',\n insetInlineStart: 0,\n zIndex: 10,\n width: '100%',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n [`${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n zIndex: 10,\n width: fontSizeLG,\n margin: `0 ${token.marginXXS}px`,\n fontSize: fontSizeLG,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`\n }\n },\n [`${itemCls}-actions, ${itemCls}-actions:hover`]: {\n [`${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n color: new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString(),\n '&:hover': {\n color: colorTextLightSolid\n }\n }\n },\n [`${itemCls}-thumbnail, ${itemCls}-thumbnail img`]: {\n position: 'static',\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'contain'\n },\n [`${itemCls}-name`]: {\n display: 'none',\n textAlign: 'center'\n },\n [`${itemCls}-file + ${itemCls}-name`]: {\n position: 'absolute',\n bottom: token.margin,\n display: 'block',\n width: `calc(100% - ${token.paddingXS * 2}px)`\n },\n [`${itemCls}-uploading`]: {\n [`&${itemCls}`]: {\n backgroundColor: token.colorFillAlter\n },\n [`&::before, ${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n display: 'none'\n }\n },\n [`${itemCls}-progress`]: {\n bottom: token.marginXL,\n width: `calc(100% - ${token.paddingXS * 2}px)`,\n paddingInlineStart: 0\n }\n }\n })\n };\n};\nexport { genPictureStyle, genPictureCardStyle };","// =========================== Motion ===========================\nconst genRtlStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nexport default genRtlStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genDraggerStyle from './dragger';\nimport genListStyle from './list';\nimport genMotionStyle from './motion';\nimport { genPictureCardStyle, genPictureStyle } from './picture';\nimport genRtlStyle from './rtl';\nimport { resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nconst genBaseStyle = token => {\n const {\n componentCls,\n colorTextDisabled\n } = token;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n [componentCls]: {\n outline: 0,\n \"input[type='file']\": {\n cursor: 'pointer'\n }\n },\n [`${componentCls}-select`]: {\n display: 'inline-block'\n },\n [`${componentCls}-disabled`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Upload', token => {\n const {\n fontSizeHeading3,\n fontSize,\n lineHeight,\n lineWidth,\n controlHeightLG\n } = token;\n const listItemHeightSM = Math.round(fontSize * lineHeight);\n const uploadToken = mergeToken(token, {\n uploadThumbnailSize: fontSizeHeading3 * 2,\n uploadProgressOffset: listItemHeightSM / 2 + lineWidth,\n uploadPicCardSize: controlHeightLG * 2.55\n });\n return [genBaseStyle(uploadToken), genDraggerStyle(uploadToken), genPictureStyle(uploadToken), genPictureCardStyle(uploadToken), genListStyle(uploadToken), genMotionStyle(uploadToken), genRtlStyle(uploadToken), genCollapseMotion(uploadToken)];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport classNames from 'classnames';\nimport RcUpload from 'rc-upload';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport LocaleReceiver from '../locale/LocaleReceiver';\nimport defaultLocale from '../locale/en_US';\nimport warning from '../_util/warning';\nimport UploadList from './UploadList';\nimport { file2Obj, getFileItem, removeFileItem, updateFileList } from './utils';\nimport useStyle from './style';\nexport const LIST_IGNORE = `__LIST_IGNORE_${Date.now()}__`;\nconst InternalUpload = (props, ref) => {\n const {\n fileList,\n defaultFileList,\n onRemove,\n showUploadList = true,\n listType = 'text',\n onPreview,\n onDownload,\n onChange,\n onDrop,\n previewFile,\n disabled: customDisabled,\n locale: propLocale,\n iconRender,\n isImageUrl,\n progress,\n prefixCls: customizePrefixCls,\n className,\n type = 'select',\n children,\n style,\n itemRender,\n maxCount,\n data = {},\n multiple = false,\n action = '',\n accept = '',\n supportServerRender = true\n } = props;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const [mergedFileList, setMergedFileList] = useMergedState(defaultFileList || [], {\n value: fileList,\n postState: list => list !== null && list !== void 0 ? list : []\n });\n const [dragState, setDragState] = React.useState('drop');\n const upload = React.useRef(null);\n process.env.NODE_ENV !== \"production\" ? warning('fileList' in props || !('value' in props), 'Upload', '`value` is not a valid prop, do you mean `fileList`?') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('transformFile' in props), 'Upload', '`transformFile` is deprecated. Please use `beforeUpload` directly.') : void 0;\n // Control mode will auto fill file uid if not provided\n React.useMemo(() => {\n const timestamp = Date.now();\n (fileList || []).forEach((file, index) => {\n if (!file.uid && !Object.isFrozen(file)) {\n file.uid = `__AUTO__${timestamp}_${index}__`;\n }\n });\n }, [fileList]);\n const onInternalChange = (file, changedFileList, event) => {\n let cloneList = _toConsumableArray(changedFileList);\n // Cut to match count\n if (maxCount === 1) {\n cloneList = cloneList.slice(-1);\n } else if (maxCount) {\n cloneList = cloneList.slice(0, maxCount);\n }\n // Prevent React18 auto batch since input[upload] trigger process at same time\n // which makes fileList closure problem\n flushSync(() => {\n setMergedFileList(cloneList);\n });\n const changeInfo = {\n file: file,\n fileList: cloneList\n };\n if (event) {\n changeInfo.event = event;\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo);\n };\n const mergedBeforeUpload = (file, fileListArgs) => __awaiter(void 0, void 0, void 0, function* () {\n const {\n beforeUpload,\n transformFile\n } = props;\n let parsedFile = file;\n if (beforeUpload) {\n const result = yield beforeUpload(file, fileListArgs);\n if (result === false) {\n return false;\n }\n // Hack for LIST_IGNORE, we add additional info to remove from the list\n delete file[LIST_IGNORE];\n if (result === LIST_IGNORE) {\n Object.defineProperty(file, LIST_IGNORE, {\n value: true,\n configurable: true\n });\n return false;\n }\n if (typeof result === 'object' && result) {\n parsedFile = result;\n }\n }\n if (transformFile) {\n parsedFile = yield transformFile(parsedFile);\n }\n return parsedFile;\n });\n const onBatchStart = batchFileInfoList => {\n // Skip file which marked as `LIST_IGNORE`, these file will not add to file list\n const filteredFileInfoList = batchFileInfoList.filter(info => !info.file[LIST_IGNORE]);\n // Nothing to do since no file need upload\n if (!filteredFileInfoList.length) {\n return;\n }\n const objectFileList = filteredFileInfoList.map(info => file2Obj(info.file));\n // Concat new files with prev files\n let newFileList = _toConsumableArray(mergedFileList);\n objectFileList.forEach(fileObj => {\n // Replace file if exist\n newFileList = updateFileList(fileObj, newFileList);\n });\n objectFileList.forEach((fileObj, index) => {\n // Repeat trigger `onChange` event for compatible\n let triggerFileObj = fileObj;\n if (!filteredFileInfoList[index].parsedFile) {\n // `beforeUpload` return false\n const {\n originFileObj\n } = fileObj;\n let clone;\n try {\n clone = new File([originFileObj], originFileObj.name, {\n type: originFileObj.type\n });\n } catch (e) {\n clone = new Blob([originFileObj], {\n type: originFileObj.type\n });\n clone.name = originFileObj.name;\n clone.lastModifiedDate = new Date();\n clone.lastModified = new Date().getTime();\n }\n clone.uid = fileObj.uid;\n triggerFileObj = clone;\n } else {\n // Inject `uploading` status\n fileObj.status = 'uploading';\n }\n onInternalChange(triggerFileObj, newFileList);\n });\n };\n const onSuccess = (response, file, xhr) => {\n try {\n if (typeof response === 'string') {\n response = JSON.parse(response);\n }\n } catch (e) {\n /* do nothing */\n }\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'done';\n targetItem.percent = 100;\n targetItem.response = response;\n targetItem.xhr = xhr;\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n const onProgress = (e, file) => {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'uploading';\n targetItem.percent = e.percent;\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList, e);\n };\n const onError = (error, response, file) => {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.error = error;\n targetItem.response = response;\n targetItem.status = 'error';\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n const handleRemove = file => {\n let currentFile;\n Promise.resolve(typeof onRemove === 'function' ? onRemove(file) : onRemove).then(ret => {\n var _a;\n // Prevent removing file\n if (ret === false) {\n return;\n }\n const removedFileList = removeFileItem(file, mergedFileList);\n if (removedFileList) {\n currentFile = Object.assign(Object.assign({}, file), {\n status: 'removed'\n });\n mergedFileList === null || mergedFileList === void 0 ? void 0 : mergedFileList.forEach(item => {\n const matchKey = currentFile.uid !== undefined ? 'uid' : 'name';\n if (item[matchKey] === currentFile[matchKey] && !Object.isFrozen(item)) {\n item.status = 'removed';\n }\n });\n (_a = upload.current) === null || _a === void 0 ? void 0 : _a.abort(currentFile);\n onInternalChange(currentFile, removedFileList);\n }\n });\n };\n const onFileDrop = e => {\n setDragState(e.type);\n if (e.type === 'drop') {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(e);\n }\n };\n // Test needs\n React.useImperativeHandle(ref, () => ({\n onBatchStart,\n onSuccess,\n onProgress,\n onError,\n fileList: mergedFileList,\n upload: upload.current\n }));\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('upload', customizePrefixCls);\n const rcUploadProps = Object.assign(Object.assign({\n onBatchStart,\n onError,\n onProgress,\n onSuccess\n }, props), {\n data,\n multiple,\n action,\n accept,\n supportServerRender,\n prefixCls,\n disabled: mergedDisabled,\n beforeUpload: mergedBeforeUpload,\n onChange: undefined\n });\n delete rcUploadProps.className;\n delete rcUploadProps.style;\n // Remove id to avoid open by label when trigger is hidden\n // !children: https://github.com/ant-design/ant-design/issues/14298\n // disabled: https://github.com/ant-design/ant-design/issues/16478\n // https://github.com/ant-design/ant-design/issues/24197\n if (!children || mergedDisabled) {\n delete rcUploadProps.id;\n }\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const renderUploadList = (button, buttonVisible) => showUploadList ? /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Upload\",\n defaultLocale: defaultLocale.Upload\n }, contextLocale => {\n const {\n showRemoveIcon,\n showPreviewIcon,\n showDownloadIcon,\n removeIcon,\n previewIcon,\n downloadIcon\n } = typeof showUploadList === 'boolean' ? {} : showUploadList;\n return /*#__PURE__*/React.createElement(UploadList, {\n prefixCls: prefixCls,\n listType: listType,\n items: mergedFileList,\n previewFile: previewFile,\n onPreview: onPreview,\n onDownload: onDownload,\n onRemove: handleRemove,\n showRemoveIcon: !mergedDisabled && showRemoveIcon,\n showPreviewIcon: showPreviewIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: iconRender,\n locale: Object.assign(Object.assign({}, contextLocale), propLocale),\n isImageUrl: isImageUrl,\n progress: progress,\n appendAction: button,\n appendActionVisible: buttonVisible,\n itemRender: itemRender\n });\n }) : button;\n const rtlCls = {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n };\n if (type === 'drag') {\n const dragCls = classNames(prefixCls, {\n [`${prefixCls}-drag`]: true,\n [`${prefixCls}-drag-uploading`]: mergedFileList.some(file => file.status === 'uploading'),\n [`${prefixCls}-drag-hover`]: dragState === 'dragover',\n [`${prefixCls}-disabled`]: mergedDisabled,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-wrapper`, rtlCls, className, hashId)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: dragCls,\n onDrop: onFileDrop,\n onDragOver: onFileDrop,\n onDragLeave: onFileDrop,\n style: style\n }, /*#__PURE__*/React.createElement(RcUpload, Object.assign({}, rcUploadProps, {\n ref: upload,\n className: `${prefixCls}-btn`\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-drag-container`\n }, children))), renderUploadList()));\n }\n const uploadButtonCls = classNames(prefixCls, `${prefixCls}-select`, {\n [`${prefixCls}-disabled`]: mergedDisabled\n });\n const renderUploadButton = uploadButtonStyle => /*#__PURE__*/React.createElement(\"div\", {\n className: uploadButtonCls,\n style: uploadButtonStyle\n }, /*#__PURE__*/React.createElement(RcUpload, Object.assign({}, rcUploadProps, {\n ref: upload\n })));\n const uploadButton = renderUploadButton(children ? undefined : {\n display: 'none'\n });\n if (listType === 'picture-card') {\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-wrapper`, `${prefixCls}-picture-card-wrapper`, rtlCls, className, hashId)\n }, renderUploadList(uploadButton, !!children)));\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-wrapper`, rtlCls, className, hashId)\n }, uploadButton, renderUploadList()));\n};\nconst Upload = /*#__PURE__*/React.forwardRef(InternalUpload);\nif (process.env.NODE_ENV !== 'production') {\n Upload.displayName = 'Upload';\n}\nexport default Upload;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport Upload from './Upload';\nconst Dragger = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n style,\n height\n } = _a,\n restProps = __rest(_a, [\"style\", \"height\"]);\n return /*#__PURE__*/React.createElement(Upload, Object.assign({\n ref: ref\n }, restProps, {\n type: \"drag\",\n style: Object.assign(Object.assign({}, style), {\n height\n })\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Dragger.displayName = 'Dragger';\n}\nexport default Dragger;","import Dragger from './Dragger';\nimport InternalUpload, { LIST_IGNORE } from './Upload';\nconst Upload = InternalUpload;\nUpload.Dragger = Dragger;\nUpload.LIST_IGNORE = LIST_IGNORE;\nexport default Upload;","export enum SORT_ENUM {\r\n ASC = \"ASC\",\r\n DESC = \"DESC\",\r\n}\r\n\r\nexport enum INFOR_TYPE_ENUM {\r\n WAIT = \"WAIT\",\r\n CONTACTED = \"CONTACTED\",\r\n CANCEL = \"CANCEL\",\r\n}\r\nconst InforTypeFormat: any = {};\r\nInforTypeFormat[INFOR_TYPE_ENUM.WAIT] = \"Đang chờ\";\r\nInforTypeFormat[INFOR_TYPE_ENUM.CONTACTED] = \"Đã liên hệ\";\r\nInforTypeFormat[INFOR_TYPE_ENUM.CANCEL] = \"Đã hủy\";\r\nInforTypeFormat[\"\"] = \"Không xác định\";\r\n\r\nexport default InforTypeFormat;\r\n\r\nexport enum PartnerTypeEnum {\r\n PARTNER = \"PARTNER\",\r\n CERTIFICATE = \"CERTIFICATE\",\r\n}\r\nexport enum FileTypeEnum {\r\n DEFAULT = \"DEFAULT\",\r\n BANNER = \"BANNER\",\r\n ICON = \"ICON\",\r\n AVATAR = \"AVATAR\",\r\n IMAGE = \"IMAGE\",\r\n POST = \"POST\",\r\n CV = \"CV\",\r\n}\r\nexport enum GenderEnum {\r\n MALE = \"MALE\",\r\n FEMALE = \"FEMALE\",\r\n}\r\n\r\nexport enum DegreeEnum {\r\n PROFESSOR = \"PROFESSOR\",\r\n PHD = \"PHD\",\r\n MASTER = \"MASTER\",\r\n UNIVERSITY = \"UNIVERSITY\",\r\n COLLEGE = \"COLLEGE\",\r\n INTERMEDIATE = \"INTERMEDIATE\",\r\n CERTIFICATE = \"CERTIFICATE\",\r\n OTHER = \"OTHER\",\r\n}\r\n\r\nexport const DegreeOtp = [\r\n {\r\n label: \"--\",\r\n value: \"\",\r\n },\r\n {\r\n label: \"Giáo sư\",\r\n value: DegreeEnum.PROFESSOR,\r\n },\r\n {\r\n label: \"Tiến sỹ\",\r\n value: DegreeEnum.PHD,\r\n },\r\n {\r\n label: \"Thạc sỹ\",\r\n value: DegreeEnum.MASTER,\r\n },\r\n {\r\n label: \"Đại học\",\r\n value: DegreeEnum.UNIVERSITY,\r\n },\r\n {\r\n label: \"Cao đẳng\",\r\n value: DegreeEnum.COLLEGE,\r\n },\r\n {\r\n label: \"Trung cấp\",\r\n value: DegreeEnum.INTERMEDIATE,\r\n },\r\n {\r\n label: \"Chứng chỉ\",\r\n value: DegreeEnum.CERTIFICATE,\r\n },\r\n {\r\n label: \"Khác\",\r\n value: DegreeEnum.OTHER,\r\n },\r\n];\r\n\r\nexport enum RankingEnum {\r\n EXCELLENT = \"EXCELLENT\",\r\n GOOD = \"GOOD\",\r\n RATHER = \"RATHER\",\r\n MEDIUM = \"MEDIUM\",\r\n WEAK = \"WEAK\",\r\n LEAST = \"LEAST\",\r\n}\r\nexport const RankingOtp = [\r\n {\r\n label: \"--\",\r\n value: \"\",\r\n },\r\n {\r\n label: \"Xuất sắc\",\r\n value: RankingEnum.EXCELLENT,\r\n },\r\n {\r\n label: \"Giỏi\",\r\n value: RankingEnum.GOOD,\r\n },\r\n {\r\n label: \"Khá\",\r\n value: RankingEnum.RATHER,\r\n },\r\n {\r\n label: \"Trung bình\",\r\n value: RankingEnum.MEDIUM,\r\n },\r\n {\r\n label: \"Yếu\",\r\n value: RankingEnum.WEAK,\r\n },\r\n {\r\n label: \"Kém\",\r\n value: RankingEnum.LEAST,\r\n },\r\n];\r\n\r\nexport enum InforPurposeEnum {\r\n ORDER = \"order\",\r\n CLIENT = \"client\",\r\n}\r\n\r\nexport const InforPurpose = {\r\n order: \"Đặt hàng\",\r\n client: \"Đối tác\",\r\n};\r\n\r\nexport enum DISPLAY_TYPE_CATEGORY_ENUM {\r\n ABOUT_US = 1,\r\n STATISTICAL = 2,\r\n BUSINESS_AREAS= 3,\r\n FEATURED_NEWS = 4,\r\n PARTNER_AND_CERTIFICATE = 5,\r\n INTRODUCE = 6,\r\n MISSION_AND_VISION = 8,\r\n LEADERSHIP = 9,\r\n NEWS = 10,\r\n NEWS11 = 11,\r\n HUMAN = 12,\r\n PRODUCT = 20,\r\n CATEGORY_PRODUCT = 21,\r\n}\r\n","import { AxiosRequestConfig } from \"axios\";\r\nimport configServices from \"../../../utils/configServices\";\r\nimport { FileTypeEnum } from \"../../../utils/enum\";\r\nimport { IFile, IFileAction } from \"./file.model\";\r\nexport const uploadFile = async (body: IFileAction) => {\r\n const data = new FormData();\r\n const type = body.type ? body.type as string : FileTypeEnum.DEFAULT as string;\r\n data.append(\"file\", body.file, body.name);\r\n data.append(\"type\", type);\r\n const config: AxiosRequestConfig = {\r\n url: `file-manager/upload`,\r\n method: \"post\",\r\n data,\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n };\r\n return await configServices.axonizeRequestService(config);\r\n};\r\n\r\nexport const deleteFile = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `file-manager/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateFile = async (id: number, param: any) => {\r\n const result = await configServices.patchService(\r\n `file-manager/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getFile = async (id: number) => {\r\n const result = await configServices.getService(\r\n `file-manager/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getFilets = async (filter?: any) => {\r\n const result = await configServices.getService(\r\n `file`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\nimport { Modal, Upload } from \"antd\";\r\nimport type { RcFile, UploadProps } from \"antd/es/upload\";\r\nimport type { UploadFile } from \"antd/es/upload/interface\";\r\nimport { uploadFile } from \"../file/services\";\r\nimport { get } from \"lodash\";\r\nimport { FileTypeEnum } from \"../../utils/enum\";\r\nimport noImage from \"../../imgs/no_image.png\";\r\n\r\nconst getBase64 = (file: RcFile): Promise =>\r\n new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result as string);\r\n reader.onerror = (error) => reject(error);\r\n });\r\n\r\nconst UploadImgComponent = ({\r\n className,\r\n url,\r\n setImg,\r\n keyPath,\r\n type,\r\n accept,\r\n addOtp\r\n}: {\r\n className?: string;\r\n url?: string;\r\n keyPath: string;\r\n accept?: string;\r\n type?: FileTypeEnum;\r\n addOtp?: any;\r\n setImg?: (link: string, key: string, addOtp?: any) => void;\r\n}) => {\r\n\r\n const initImg = url\r\n ? [\r\n {\r\n name: \"1\",\r\n uid: \"1\",\r\n url: url || noImage,\r\n },\r\n ]\r\n : [];\r\n const [previewOpen, setPreviewOpen] = useState(false);\r\n const [previewImage, setPreviewImage] = useState(\"\");\r\n const [previewTitle, setPreviewTitle] = useState(\"\");\r\n const [fileList, setFileList] = useState(initImg);\r\n\r\n const handleCancel = () => setPreviewOpen(false);\r\n\r\n const handlePreview = async (file: UploadFile) => {\r\n if (!file.url && !file.preview) {\r\n file.preview = await getBase64(file.originFileObj as RcFile);\r\n }\r\n\r\n setPreviewImage(file.url || (file.preview as string));\r\n setPreviewOpen(true);\r\n setPreviewTitle(\r\n file.name || file.url!.substring(file.url!.lastIndexOf(\"/\") + 1)\r\n );\r\n };\r\n const onRemoveImg = () => {\r\n setFileList([]);\r\n setImg && setImg(\"\", keyPath, addOtp);\r\n };\r\n\r\n const handleChange: UploadProps[\"onChange\"] = async ({\r\n fileList: newFileList,\r\n }) => {\r\n if (newFileList.length && !fileList.length) {\r\n const newF = newFileList[0][\"originFileObj\"];\r\n const data = await uploadFile({\r\n file: newF,\r\n name: newFileList[0]?.fileName,\r\n minType: newFileList[0].type,\r\n type,\r\n });\r\n const id = get(data, \"data.id\", \"\");\r\n if (id && setImg) {\r\n const link = `${process.env.REACT_APP_API_URL}file/detail/${id}`;\r\n setImg(link, keyPath, addOtp);\r\n }\r\n }\r\n setFileList(newFileList);\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n \r\n
Upload
\r\n
\r\n );\r\n return (\r\n <>\r\n false}\r\n defaultFileList={fileList}\r\n listType=\"picture-card\"\r\n fileList={fileList}\r\n onPreview={handlePreview}\r\n onChange={handleChange}\r\n onRemove={onRemoveImg}\r\n accept={accept || 'image/*'}\r\n >\r\n {fileList.length >= 1 ? null : uploadButton}\r\n \r\n \r\n \"example\"\r\n \r\n \r\n );\r\n};\r\nexport default UploadImgComponent;\r\n","import { useEffect, useState } from \"react\";\r\nimport { set, update, cloneDeep } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { createBannerAction, getBannerDetail } from \"../slice\";\r\nimport {\r\n BannerInterface,\r\n IBanner,\r\n ISliderLanguage,\r\n SliderInterface,\r\n} from \"../banner.model\";\r\nimport { MinusCircleOutlined } from \"@ant-design/icons\";\r\nimport {\r\n Card,\r\n Form,\r\n Input,\r\n Divider,\r\n Button,\r\n Row,\r\n Col,\r\n TabsProps,\r\n Tabs,\r\n} from \"antd\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport AnimateSider from \"../../../Layout/sliders/animate-slider\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport UploadImgComponent from \"../../../Layout/uploadImg\";\r\nimport { FileTypeEnum } from \"../../../utils/enum\";\r\nimport { ILanguage } from \"../../language/language.model\";\r\nimport { useEffectOnce } from \"react-use\";\r\n\r\nconst { TextArea } = Input;\r\nconst CreateBannerComponent = () => {\r\n //#region declare\r\n const sliderInit = {\r\n title: \"\",\r\n content: \"\",\r\n description: \"\",\r\n imgage: \"\",\r\n path: \"\",\r\n };\r\n const bannerInit: IBanner = {\r\n name: \"\",\r\n sliders: [\r\n {\r\n title: \"\",\r\n content: \"\",\r\n description: \"\",\r\n imgage: \"\",\r\n path: \"\",\r\n },\r\n ],\r\n };\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const bannerData = useAppSelector((state) => state.screens.banner);\r\n const [form] = Form.useForm();\r\n const [isUploadImg, setUploadImg] = useState(false);\r\n const languageLocal = localStorage.getItem(\"language\");\r\n const [languages] = useState(\r\n languageLocal ? JSON.parse(languageLocal) : []\r\n );\r\n const [items, setItems] = useState([]);\r\n const [nameBanner, setNameBanner] = useState();\r\n const [banner, setBanner] = useState({ ...bannerInit });\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n //#region useEffect\r\n\r\n const _addSlider = () => {\r\n const newBanner: IBanner = { ...cloneDeep(banner) };\r\n newBanner.languages = newBanner.languages?.map((lang) => {\r\n lang.sliders.push({ ...sliderInit });\r\n return lang;\r\n });\r\n setBanner({ ...newBanner });\r\n refreshItem(newBanner.languages || []);\r\n };\r\n\r\n const _removeSlider = (index: number) => {\r\n const newBanner: IBanner = { ...banner };\r\n newBanner.languages = newBanner.languages?.map((lang) => {\r\n lang.sliders = lang.sliders.filter((m, i) => i !== index);\r\n return lang;\r\n });\r\n setBanner({ ...newBanner });\r\n refreshItem(newBanner.languages || []);\r\n };\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onSubmitCourse = async () => {\r\n const body = { ...banner } as BannerInterface;\r\n if (body.languages) {\r\n const sliderLang =\r\n body.languages.find((f) => f.isDefault) || body.languages[0];\r\n if (sliderLang) {\r\n body.sliders = sliderLang.sliders;\r\n }\r\n }\r\n body.name = nameBanner;\r\n await dispatch(\r\n createBannerAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n const setImg = (\r\n imgage: string,\r\n key: string,\r\n listSliders: ISliderLanguage[]\r\n ) => {\r\n const newBanner = cloneDeep(banner);\r\n newBanner.languages = listSliders.map((lang) => {\r\n const newLang = cloneDeep(lang);\r\n const sliders = lang.sliders.map((s) => {\r\n const slide = cloneDeep(s);\r\n slide.imgage = imgage;\r\n return slide;\r\n });\r\n newLang.sliders = sliders;\r\n return newLang;\r\n });\r\n\r\n setBanner({ ...newBanner });\r\n refreshItem(newBanner.languages || []);\r\n };\r\n const onChangeBanner = (\r\n valueUp: any,\r\n path: string,\r\n listSliders: ISliderLanguage[]\r\n ) => {\r\n const languages = cloneDeep(listSliders);\r\n set(languages, path, valueUp);\r\n setBanner({ ...banner, languages });\r\n refreshItem(languages || []);\r\n };\r\n const _renderSliders = ({\r\n langSlider,\r\n indexLang,\r\n listSliders,\r\n }: {\r\n langSlider: SliderInterface[];\r\n indexLang: number;\r\n listSliders: ISliderLanguage[];\r\n }) => {\r\n return langSlider.map((slider, index) => (\r\n _removeSlider(index)}\r\n />\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {((id && isUploadImg) || !id) && index >= 0 && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n ));\r\n };\r\n\r\n const _onFinish = async () => {\r\n _onSubmitCourse();\r\n };\r\n\r\n const itemInit = (listSliderLanguage: ISliderLanguage[]) => {\r\n const listSliders: ISliderLanguage[] = languages.map((lang) => {\r\n const langSlider = listSliderLanguage?.find(\r\n (s) => s.language === lang.code\r\n );\r\n const sliderInit: ISliderLanguage = langSlider\r\n ? {\r\n sliders: langSlider.sliders,\r\n language: lang.code,\r\n isDefault: lang.isDefault,\r\n }\r\n : {\r\n sliders: [\r\n {\r\n title: \"\",\r\n content: \"\",\r\n description: \"\",\r\n imgage: \"\",\r\n path: \"\",\r\n },\r\n ],\r\n language: lang.code,\r\n isDefault: lang.isDefault,\r\n };\r\n return sliderInit;\r\n });\r\n const newBanner = cloneDeep(banner);\r\n set(newBanner, \"languages\", listSliders);\r\n setBanner(newBanner);\r\n refreshItem(listSliders);\r\n };\r\n\r\n const refreshItem = (listSliders: ISliderLanguage[]) => {\r\n const items: TabsProps[\"items\"] = listSliders.map((sliderLan, index) => ({\r\n key: `${sliderLan.language}`,\r\n label: languages[index].name,\r\n id: sliderLan.language,\r\n children: _renderSliders({\r\n langSlider: sliderLan.sliders,\r\n indexLang: index,\r\n listSliders,\r\n }),\r\n }));\r\n setItems(items);\r\n };\r\n\r\n useEffectOnce(() => {\r\n itemInit([]);\r\n });\r\n\r\n useEffect(() => {\r\n const getDetail = async () => {\r\n if (id) {\r\n await dispatch(getBannerDetail({ id }) as any);\r\n }\r\n };\r\n getDetail();\r\n }, [dispatch, id]);\r\n\r\n useEffect(() => {\r\n if (bannerData.detail && id) {\r\n const dataBan: BannerInterface = bannerData.detail;\r\n setNameBanner(dataBan.name);\r\n const ban: IBanner = {\r\n name: dataBan.name,\r\n sliders: dataBan.sliders,\r\n };\r\n setBanner(ban);\r\n form.setFieldsValue({ ...ban, name: dataBan.name });\r\n refreshItem(dataBan.languages || []);\r\n setUploadImg(true);\r\n }\r\n }, [bannerData, id, form]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n setNameBanner(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateBannerComponent;\r\n","import { PostInterface } from \"./../../../models/post\";\r\nimport { IDataResponse, ISearchParam } from \"../../../models\";\r\nimport configServices from \"../../../utils/configServices\";\r\nimport { ICategory, ICategoryAction } from \"../category.model\";\r\n\r\nexport const createCategoryList = async (data: ICategory[]) => {\r\n const result = await configServices.postService(\"category/list\", {\r\n data,\r\n });\r\n return result;\r\n};\r\n\r\nexport const createCategory = async (body: ICategory) => {\r\n const result = await configServices.postService(\"category\", {\r\n ...body,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteCategory = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `category/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateCategory = async (id: string, body: ICategory) => {\r\n body.parentId = body.parentId === 'null' ? null : body.parentId;\r\n const result = await configServices.patchService(\r\n `category/${id}`,\r\n { ...body, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getCategory = async (id: string, language?: string) => {\r\n const result = await configServices.getService(\r\n `category/${id}`,\r\n { language },\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getCategories = async (filter?: any) => {\r\n const result = await configServices.getService(\r\n `category`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getCategoriesTree = async (filter?: any) => {\r\n const result = await configServices.getService(\r\n `category/tree`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { ICategory, ISearchCategory } from \"./category.model\";\r\nimport { ICategoryState } from \"./propState\";\r\nimport {\r\n createCategory,\r\n deleteCategory,\r\n updateCategory,\r\n getCategories,\r\n getCategory,\r\n getCategoriesTree,\r\n} from \"./services\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: ICategoryState = {\r\n data: [],\r\n currentPage: 1,\r\n count: 0,\r\n detail: {\r\n id: \"\",\r\n title: \"\",\r\n url: \"\",\r\n isMenu: false,\r\n parentId: \"\",\r\n categoryId: \"\",\r\n description: \"\",\r\n indexSort: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getCategorysAction = createAsyncThunk(\r\n \"category\",\r\n async (filter: ISearchCategory, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getCategories(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getCategorysTreeAction = createAsyncThunk(\r\n \"category\",\r\n async (filter: ISearchCategory, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const state = thunkAPI.getState() as RootState;\r\n const response: any = await getCategoriesTree(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n \r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n thunkAPI.dispatch(setPostCountAction(response?.count || 0));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getCategoryDetail = createAsyncThunk(\r\n \"category/detail\",\r\n async (payload: { id: string }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getCategory(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createCategoryAction = createAsyncThunk(\r\n \"category/createCategoryAction\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const body = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createCategory(body);\r\n } else {\r\n await updateCategory(payload.id, body);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteCategoryAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: any }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteCategory(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getCategorysTreeAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const bannerSlice = createSlice({\r\n name: \"banner\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: ICategoryState,\r\n action: PayloadAction\r\n ) => {\r\n console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setPostCountAction: (\r\n state: ICategoryState,\r\n action: PayloadAction\r\n ) => {\r\n state.count = action.payload;\r\n // state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: ICategoryState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.detail = action.payload;\r\n },\r\n setStatusModalAction: (\r\n state: ICategoryState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: ICategory | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setPostAction, setStatusModalAction, setDetailAction, setPostCountAction } =\r\n bannerSlice.actions;\r\n\r\nexport default bannerSlice.reducer;\r\n","import { DownOutlined, RightOutlined } from \"@ant-design/icons\";\r\nimport { Button, Card, Col, DatePicker, Input, Row, Select } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport moment from \"moment\";\r\nimport { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getCategorysTreeAction } from \"../slice\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchCategory } from \"../category.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getCategories } from \"../services\";\r\n\r\nconst { Option } = Select;\r\n\r\nconst defaultState: ISearchCategory = {\r\n isMenu: undefined,\r\n parentId: \"\",\r\n path: \"\",\r\n title: \"\",\r\n};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [state, setState] = useState(\r\n _.cloneDeep(defaultState)\r\n );\r\n\r\n const [search, searchStateFn] = useAsyncFn(\r\n async (params: ISearchCategory) => {\r\n return dispatch(getCategorysTreeAction(params) as any);\r\n }\r\n );\r\n\r\n const debounceLoadSearch = useMemo(\r\n () =>\r\n debounce((query: ISearchCategory) => {\r\n return searchStateFn(query);\r\n }, 500),\r\n [searchStateFn]\r\n );\r\n const onChangeState = (query: ISearchCategory) => {\r\n setState({ ...query });\r\n return debounceLoadSearch(query);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n CheckOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { deleteCategoryAction, getCategorysTreeAction } from \"./slice\";\r\nimport { ICategory } from \"./category.model\";\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { isCheckPermisson } from \"../../utils\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst CategoryPage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n total: 1,\r\n currentPage: 1,\r\n });\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isCategoryCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CATEGORY_CREATE\r\n );\r\n const isCategoryUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CATEGORY_UPDATE\r\n );\r\n const isCategoryList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CATEGORY_LIST\r\n );\r\n const isCategoryDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CATEGORY_DELETE\r\n );\r\n\r\n const header: any = [\r\n {\r\n title: \"Tiêu đề\",\r\n key: \"title\",\r\n dataIndex: \"title\",\r\n align: \"left\",\r\n },\r\n {\r\n title: \"Đường dẫn\",\r\n key: \"slug\",\r\n dataIndex: \"slug\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Mô tả\",\r\n key: \"description\",\r\n dataIndex: \"description\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Sắp xếp\",\r\n key: \"indexSort\",\r\n dataIndex: \"indexSort\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Là menu\",\r\n key: \"isMenu\",\r\n dataIndex: \"isMenu\",\r\n align: \"center\",\r\n render: (_text: string, record: ICategory, index: number) => {\r\n return (\r\n <>{record.isMenu && }\r\n );\r\n },\r\n },\r\n {\r\n title: \"Ảnh\",\r\n key: \"url\",\r\n align: \"center\",\r\n render: (_text: string, record: ICategory, index: number) => {\r\n return ;\r\n },\r\n },\r\n {\r\n title: \"Kiểu hiển thị\",\r\n key: \"type\",\r\n dataIndex: \"type\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: ICategory, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const categoryData = useAppSelector((state) => state.screens.category);\r\n const menu = (item: ICategory, index: number) => {\r\n return (\r\n \r\n {isCategoryUpdate && (\r\n }\r\n // onClick={_editItem(item)}\r\n >\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isCategoryDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isCategoryList && dispatch(getCategorysTreeAction({}) as any);\r\n }, [dispatch, isCategoryList]);\r\n\r\n useEffect(() => {\r\n if (categoryData.data) {\r\n setState(categoryData);\r\n }\r\n }, [categoryData]);\r\n\r\n const _confirmDelete = (item: ICategory) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa danh mục không?`,\r\n icon: ,\r\n content: item.title,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteCategoryAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n dispatch(getCategorysTreeAction({ page }) as any);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Danh mục

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isCategoryCreate && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isCategoryList && (\r\n \r\n \r\n \r\n )}\r\n {isCategoryList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CategoryPage;\r\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"checked\", \"defaultChecked\", \"disabled\", \"loadingIcon\", \"checkedChildren\", \"unCheckedChildren\", \"onClick\", \"onChange\", \"onKeyDown\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar Switch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _classNames;\n\n var _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-switch' : _ref$prefixCls,\n className = _ref.className,\n checked = _ref.checked,\n defaultChecked = _ref.defaultChecked,\n disabled = _ref.disabled,\n loadingIcon = _ref.loadingIcon,\n checkedChildren = _ref.checkedChildren,\n unCheckedChildren = _ref.unCheckedChildren,\n onClick = _ref.onClick,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _useMergedState = useMergedState(false, {\n value: checked,\n defaultValue: defaultChecked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerChecked = _useMergedState2[0],\n setInnerChecked = _useMergedState2[1];\n\n function triggerChange(newChecked, event) {\n var mergedChecked = innerChecked;\n\n if (!disabled) {\n mergedChecked = newChecked;\n setInnerChecked(mergedChecked);\n onChange === null || onChange === void 0 ? void 0 : onChange(mergedChecked, event);\n }\n\n return mergedChecked;\n }\n\n function onInternalKeyDown(e) {\n if (e.which === KeyCode.LEFT) {\n triggerChange(false, e);\n } else if (e.which === KeyCode.RIGHT) {\n triggerChange(true, e);\n }\n\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n }\n\n function onInternalClick(e) {\n var ret = triggerChange(!innerChecked, e); // [Legacy] trigger onClick with value\n\n onClick === null || onClick === void 0 ? void 0 : onClick(ret, e);\n }\n\n var switchClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), innerChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, restProps, {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": innerChecked,\n disabled: disabled,\n className: switchClassName,\n ref: ref,\n onKeyDown: onInternalKeyDown,\n onClick: onInternalClick\n }), loadingIcon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-checked\")\n }, checkedChildren), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-unchecked\")\n }, unCheckedChildren)));\n});\nSwitch.displayName = 'Switch';\nexport default Switch;","import { TinyColor } from '@ctrl/tinycolor';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genFocusStyle, resetComponent } from '../../style';\nconst genSwitchSmallStyle = token => {\n const {\n componentCls\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n return {\n [componentCls]: {\n [`&${componentCls}-small`]: {\n minWidth: token.switchMinWidthSM,\n height: token.switchHeightSM,\n lineHeight: `${token.switchHeightSM}px`,\n [`${componentCls}-inner`]: {\n paddingInlineStart: token.switchInnerMarginMaxSM,\n paddingInlineEnd: token.switchInnerMarginMinSM,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${token.switchPinSizeSM + token.switchPadding * 2}px - ${token.switchInnerMarginMaxSM * 2}px)`,\n marginInlineEnd: `calc(100% - ${token.switchPinSizeSM + token.switchPadding * 2}px + ${token.switchInnerMarginMaxSM * 2}px)`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: -token.switchHeightSM,\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`${componentCls}-handle`]: {\n width: token.switchPinSizeSM,\n height: token.switchPinSizeSM\n },\n [`${componentCls}-loading-icon`]: {\n top: (token.switchPinSizeSM - token.switchLoadingIconSize) / 2,\n fontSize: token.switchLoadingIconSize\n },\n [`&${componentCls}-checked`]: {\n [`${componentCls}-inner`]: {\n paddingInlineStart: token.switchInnerMarginMinSM,\n paddingInlineEnd: token.switchInnerMarginMaxSM,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${token.switchPinSizeSM + token.switchPadding * 2}px + ${token.switchInnerMarginMaxSM * 2}px)`,\n marginInlineEnd: `calc(-100% + ${token.switchPinSizeSM + token.switchPadding * 2}px - ${token.switchInnerMarginMaxSM * 2}px)`\n }\n },\n [`${componentCls}-handle`]: {\n insetInlineStart: `calc(100% - ${token.switchPinSizeSM + token.switchPadding}px)`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: token.marginXXS / 2,\n marginInlineEnd: -token.marginXXS / 2\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: -token.marginXXS / 2,\n marginInlineEnd: token.marginXXS / 2\n }\n }\n }\n }\n }\n };\n};\nconst genSwitchLoadingStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n [`${componentCls}-loading-icon${token.iconCls}`]: {\n position: 'relative',\n top: (token.switchPinSize - token.fontSize) / 2,\n color: token.switchLoadingIconColor,\n verticalAlign: 'top'\n },\n [`&${componentCls}-checked ${componentCls}-loading-icon`]: {\n color: token.switchColor\n }\n }\n };\n};\nconst genSwitchHandleStyle = token => {\n const {\n componentCls\n } = token;\n const switchHandleCls = `${componentCls}-handle`;\n return {\n [componentCls]: {\n [switchHandleCls]: {\n position: 'absolute',\n top: token.switchPadding,\n insetInlineStart: token.switchPadding,\n width: token.switchPinSize,\n height: token.switchPinSize,\n transition: `all ${token.switchDuration} ease-in-out`,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n backgroundColor: token.colorWhite,\n borderRadius: token.switchPinSize / 2,\n boxShadow: token.switchHandleShadow,\n transition: `all ${token.switchDuration} ease-in-out`,\n content: '\"\"'\n }\n },\n [`&${componentCls}-checked ${switchHandleCls}`]: {\n insetInlineStart: `calc(100% - ${token.switchPinSize + token.switchPadding}px)`\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`${switchHandleCls}::before`]: {\n insetInlineEnd: token.switchHandleActiveInset,\n insetInlineStart: 0\n },\n [`&${componentCls}-checked ${switchHandleCls}::before`]: {\n insetInlineEnd: 0,\n insetInlineStart: token.switchHandleActiveInset\n }\n }\n }\n };\n};\nconst genSwitchInnerStyle = token => {\n const {\n componentCls\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n return {\n [componentCls]: {\n [switchInnerCls]: {\n display: 'block',\n overflow: 'hidden',\n borderRadius: 100,\n height: '100%',\n paddingInlineStart: token.switchInnerMarginMax,\n paddingInlineEnd: token.switchInnerMarginMin,\n transition: `padding-inline-start ${token.switchDuration} ease-in-out, padding-inline-end ${token.switchDuration} ease-in-out`,\n [`${switchInnerCls}-checked, ${switchInnerCls}-unchecked`]: {\n display: 'block',\n color: token.colorTextLightSolid,\n fontSize: token.fontSizeSM,\n transition: `margin-inline-start ${token.switchDuration} ease-in-out, margin-inline-end ${token.switchDuration} ease-in-out`,\n pointerEvents: 'none'\n },\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${token.switchPinSize + token.switchPadding * 2}px - ${token.switchInnerMarginMax * 2}px)`,\n marginInlineEnd: `calc(100% - ${token.switchPinSize + token.switchPadding * 2}px + ${token.switchInnerMarginMax * 2}px)`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: -token.switchHeight,\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n paddingInlineStart: token.switchInnerMarginMin,\n paddingInlineEnd: token.switchInnerMarginMax,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${token.switchPinSize + token.switchPadding * 2}px + ${token.switchInnerMarginMax * 2}px)`,\n marginInlineEnd: `calc(-100% + ${token.switchPinSize + token.switchPadding * 2}px - ${token.switchInnerMarginMax * 2}px)`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: token.switchPadding * 2,\n marginInlineEnd: -token.switchPadding * 2\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: -token.switchPadding * 2,\n marginInlineEnd: token.switchPadding * 2\n }\n }\n }\n }\n };\n};\nconst genSwitchStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n boxSizing: 'border-box',\n minWidth: token.switchMinWidth,\n height: token.switchHeight,\n lineHeight: `${token.switchHeight}px`,\n verticalAlign: 'middle',\n background: token.colorTextQuaternary,\n border: '0',\n borderRadius: 100,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n userSelect: 'none',\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorTextTertiary\n }\n }), genFocusStyle(token)), {\n [`&${componentCls}-checked`]: {\n background: token.switchColor,\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorPrimaryHover\n }\n },\n [`&${componentCls}-loading, &${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n opacity: token.switchDisabledOpacity,\n '*': {\n boxShadow: 'none',\n cursor: 'not-allowed'\n }\n },\n // rtl style\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Switch', token => {\n const switchHeight = token.fontSize * token.lineHeight;\n const switchHeightSM = token.controlHeight / 2;\n const switchPadding = 2; // This is magic\n const switchPinSize = switchHeight - switchPadding * 2;\n const switchPinSizeSM = switchHeightSM - switchPadding * 2;\n const switchToken = mergeToken(token, {\n switchMinWidth: switchPinSize * 2 + switchPadding * 4,\n switchHeight,\n switchDuration: token.motionDurationMid,\n switchColor: token.colorPrimary,\n switchDisabledOpacity: token.opacityLoading,\n switchInnerMarginMin: switchPinSize / 2,\n switchInnerMarginMax: switchPinSize + switchPadding + switchPadding * 2,\n switchPadding,\n switchPinSize,\n switchBg: token.colorBgContainer,\n switchMinWidthSM: switchPinSizeSM * 2 + switchPadding * 2,\n switchHeightSM,\n switchInnerMarginMinSM: switchPinSizeSM / 2,\n switchInnerMarginMaxSM: switchPinSizeSM + switchPadding + switchPadding * 2,\n switchPinSizeSM,\n switchHandleShadow: `0 2px 4px 0 ${new TinyColor('#00230b').setAlpha(0.2).toRgbString()}`,\n switchLoadingIconSize: token.fontSizeIcon * 0.75,\n switchLoadingIconColor: `rgba(0, 0, 0, ${token.opacityLoading})`,\n switchHandleActiveInset: '-30%'\n });\n return [genSwitchStyle(switchToken),\n // inner style\n genSwitchInnerStyle(switchToken),\n // handle style\n genSwitchHandleStyle(switchToken),\n // loading style\n genSwitchLoadingStyle(switchToken),\n // small style\n genSwitchSmallStyle(switchToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RcSwitch from 'rc-switch';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport useStyle from './style';\nconst Switch = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n loading,\n className = ''\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"size\", \"disabled\", \"loading\", \"className\"]);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in props || !('value' in props), 'Switch', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = (customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled) || loading;\n const prefixCls = getPrefixCls('switch', customizePrefixCls);\n const loadingIcon = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-handle`\n }, loading && /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-loading-icon`\n }));\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const classes = classNames({\n [`${prefixCls}-small`]: (customizeSize || size) === 'small',\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(Wave, null, /*#__PURE__*/React.createElement(RcSwitch, Object.assign({}, props, {\n prefixCls: prefixCls,\n className: classes,\n disabled: mergedDisabled,\n ref: ref,\n loadingIcon: loadingIcon\n }))));\n});\nSwitch.__ANT_SWITCH = true;\nif (process.env.NODE_ENV !== 'production') {\n Switch.displayName = 'Switch';\n}\nexport default Switch;","import * as React from 'react';\nvar LegacySelectContext = /*#__PURE__*/React.createContext(null);\nexport default LegacySelectContext;","import * as React from 'react';\nvar TreeSelectContext = /*#__PURE__*/React.createContext(null);\nexport default TreeSelectContext;","export function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n return value !== undefined ? [value] : [];\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n children = _ref.children;\n\n var mergedValue = value || 'value';\n return {\n _title: label ? [label] : ['title', 'label'],\n value: mergedValue,\n key: mergedValue,\n children: children || 'children'\n };\n}\nexport function isCheckDisabled(node) {\n return !node || node.disabled || node.disableCheckbox || node.checkable === false;\n}\n/** Loop fetch all the keys exist in the tree */\n\nexport function getAllKeys(treeData, fieldNames) {\n var keys = [];\n\n function dig(list) {\n list.forEach(function (item) {\n var children = item[fieldNames.children];\n\n if (children) {\n keys.push(item[fieldNames.value]);\n dig(children);\n }\n });\n }\n\n dig(treeData);\n return keys;\n}\nexport function isNil(val) {\n return val === null || val === undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { useBaseProps } from 'rc-select';\nimport Tree from 'rc-tree';\nimport LegacyContext from \"./LegacyContext\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport { getAllKeys, isCheckDisabled } from \"./utils/valueUtil\";\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\n\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n multiple = _useBaseProps.multiple,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n open = _useBaseProps.open,\n notFoundContent = _useBaseProps.notFoundContent;\n\n var _React$useContext = React.useContext(TreeSelectContext),\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight,\n treeData = _React$useContext.treeData,\n fieldNames = _React$useContext.fieldNames,\n onSelect = _React$useContext.onSelect,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth,\n treeExpandAction = _React$useContext.treeExpandAction;\n\n var _React$useContext2 = React.useContext(LegacyContext),\n checkable = _React$useContext2.checkable,\n checkedKeys = _React$useContext2.checkedKeys,\n halfCheckedKeys = _React$useContext2.halfCheckedKeys,\n treeExpandedKeys = _React$useContext2.treeExpandedKeys,\n treeDefaultExpandAll = _React$useContext2.treeDefaultExpandAll,\n treeDefaultExpandedKeys = _React$useContext2.treeDefaultExpandedKeys,\n onTreeExpand = _React$useContext2.onTreeExpand,\n treeIcon = _React$useContext2.treeIcon,\n showTreeIcon = _React$useContext2.showTreeIcon,\n switcherIcon = _React$useContext2.switcherIcon,\n treeLine = _React$useContext2.treeLine,\n treeNodeFilterProp = _React$useContext2.treeNodeFilterProp,\n loadData = _React$useContext2.loadData,\n treeLoadedKeys = _React$useContext2.treeLoadedKeys,\n treeMotion = _React$useContext2.treeMotion,\n onTreeLoad = _React$useContext2.onTreeLoad,\n keyEntities = _React$useContext2.keyEntities;\n\n var treeRef = React.useRef();\n var memoTreeData = useMemo(function () {\n return treeData;\n }, [open, treeData], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n }); // ========================== Values ==========================\n\n var mergedCheckedKeys = React.useMemo(function () {\n if (!checkable) {\n return null;\n }\n\n return {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n }, [checkable, checkedKeys, halfCheckedKeys]); // ========================== Scroll ==========================\n\n React.useEffect(function () {\n // Single mode should scroll to current key\n if (open && !multiple && checkedKeys.length) {\n var _treeRef$current;\n\n (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.scrollTo({\n key: checkedKeys[0]\n });\n }\n }, [open]); // ========================== Search ==========================\n\n var lowerSearchValue = String(searchValue).toLowerCase();\n\n var filterTreeNode = function filterTreeNode(treeNode) {\n if (!lowerSearchValue) {\n return false;\n }\n\n return String(treeNode[treeNodeFilterProp]).toLowerCase().includes(lowerSearchValue);\n }; // =========================== Keys ===========================\n\n\n var _React$useState = React.useState(treeDefaultExpandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandedKeys = _React$useState2[0],\n setExpandedKeys = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n searchExpandedKeys = _React$useState4[0],\n setSearchExpandedKeys = _React$useState4[1];\n\n var mergedExpandedKeys = React.useMemo(function () {\n if (treeExpandedKeys) {\n return _toConsumableArray(treeExpandedKeys);\n }\n\n return searchValue ? searchExpandedKeys : expandedKeys;\n }, [expandedKeys, searchExpandedKeys, treeExpandedKeys, searchValue]);\n React.useEffect(function () {\n if (searchValue) {\n setSearchExpandedKeys(getAllKeys(treeData, fieldNames));\n }\n }, [searchValue]);\n\n var onInternalExpand = function onInternalExpand(keys) {\n setExpandedKeys(keys);\n setSearchExpandedKeys(keys);\n\n if (onTreeExpand) {\n onTreeExpand(keys);\n }\n }; // ========================== Events ==========================\n\n\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n\n var onInternalSelect = function onInternalSelect(__, info) {\n var node = info.node;\n\n if (checkable && isCheckDisabled(node)) {\n return;\n }\n\n onSelect(node.key, {\n selected: !checkedKeys.includes(node.key)\n });\n\n if (!multiple) {\n toggleOpen(false);\n }\n }; // ========================= Keyboard =========================\n\n\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeKey = _React$useState6[0],\n setActiveKey = _React$useState6[1];\n\n var activeEntity = keyEntities[activeKey];\n React.useImperativeHandle(ref, function () {\n var _treeRef$current2;\n\n return {\n scrollTo: (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 ? void 0 : _treeRef$current2.scrollTo,\n onKeyDown: function onKeyDown(event) {\n var _treeRef$current3;\n\n var which = event.which;\n\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n (_treeRef$current3 = treeRef.current) === null || _treeRef$current3 === void 0 ? void 0 : _treeRef$current3.onKeyDown(event);\n break;\n // >>> Select item\n\n case KeyCode.ENTER:\n {\n if (activeEntity) {\n var _ref = (activeEntity === null || activeEntity === void 0 ? void 0 : activeEntity.node) || {},\n selectable = _ref.selectable,\n value = _ref.value;\n\n if (selectable !== false) {\n onInternalSelect(null, {\n node: {\n key: activeKey\n },\n selected: !checkedKeys.includes(value)\n });\n }\n }\n\n break;\n }\n // >>> Close\n\n case KeyCode.ESC:\n {\n toggleOpen(false);\n }\n }\n },\n onKeyUp: function onKeyUp() {}\n };\n }); // ========================== Render ==========================\n\n if (memoTreeData.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n className: \"\".concat(prefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n\n var treeProps = {\n fieldNames: fieldNames\n };\n\n if (treeLoadedKeys) {\n treeProps.loadedKeys = treeLoadedKeys;\n }\n\n if (mergedExpandedKeys) {\n treeProps.expandedKeys = mergedExpandedKeys;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onListMouseDown\n }, activeEntity && open && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, activeEntity.node.value), /*#__PURE__*/React.createElement(Tree, _extends({\n ref: treeRef,\n focusable: false,\n prefixCls: \"\".concat(prefixCls, \"-tree\"),\n treeData: memoTreeData,\n height: listHeight,\n itemHeight: listItemHeight,\n virtual: virtual !== false && dropdownMatchSelectWidth !== false,\n multiple: multiple,\n icon: treeIcon,\n showIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n showLine: treeLine,\n loadData: searchValue ? null : loadData,\n motion: treeMotion,\n activeKey: activeKey // We handle keys by out instead tree self\n ,\n checkable: checkable,\n checkStrictly: true,\n checkedKeys: mergedCheckedKeys,\n selectedKeys: !checkable ? checkedKeys : [],\n defaultExpandAll: treeDefaultExpandAll\n }, treeProps, {\n // Proxy event out\n onActiveChange: setActiveKey,\n onSelect: onInternalSelect,\n onCheck: onInternalSelect,\n onExpand: onInternalExpand,\n onLoad: onTreeLoad,\n filterTreeNode: filterTreeNode,\n expandAction: treeExpandAction\n })));\n};\n\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar TreeNode = function TreeNode() {\n return null;\n};\n\nexport default TreeNode;","import { isCheckDisabled } from \"./valueUtil\";\nexport var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';\nexport function formatStrategyValues(values, strategy, keyEntities, fieldNames) {\n var valueSet = new Set(values);\n\n if (strategy === SHOW_CHILD) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n\n if (entity && entity.children && entity.children.some(function (_ref) {\n var node = _ref.node;\n return valueSet.has(node[fieldNames.value]);\n }) && entity.children.every(function (_ref2) {\n var node = _ref2.node;\n return isCheckDisabled(node) || valueSet.has(node[fieldNames.value]);\n })) {\n return false;\n }\n\n return true;\n });\n }\n\n if (strategy === SHOW_PARENT) {\n return values.filter(function (key) {\n var entity = keyEntities[key];\n var parent = entity ? entity.parent : null;\n\n if (parent && !isCheckDisabled(parent.node) && valueSet.has(parent.key)) {\n return false;\n }\n\n return true;\n });\n }\n\n return values;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from \"../TreeNode\";\nexport function convertChildrenToData(nodes) {\n return toArray(nodes).map(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n\n var data = _objectSpread({\n key: key,\n value: value\n }, restProps);\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}\nexport function fillLegacyProps(dataNode) {\n if (!dataNode) {\n return dataNode;\n }\n\n var cloneNode = _objectSpread({}, dataNode);\n\n if (!('props' in cloneNode)) {\n Object.defineProperty(cloneNode, 'props', {\n get: function get() {\n warning(false, 'New `rc-tree-select` not support return node instance as argument anymore. Please consider to remove `props` access.');\n return cloneNode;\n }\n });\n }\n\n return cloneNode;\n}\nexport function fillAdditionalInfo(extra, triggerValue, checkedValues, treeData, showPosition, fieldNames) {\n var triggerNode = null;\n var nodeList = null;\n\n function generateMap() {\n function dig(list) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';\n var parentIncluded = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return list.map(function (option, index) {\n var pos = \"\".concat(level, \"-\").concat(index);\n var value = option[fieldNames.value];\n var included = checkedValues.includes(value);\n var children = dig(option[fieldNames.children] || [], pos, included);\n var node = /*#__PURE__*/React.createElement(TreeNode, option, children.map(function (child) {\n return child.node;\n })); // Link with trigger node\n\n if (triggerValue === value) {\n triggerNode = node;\n }\n\n if (included) {\n var checkedNode = {\n pos: pos,\n node: node,\n children: children\n };\n\n if (!parentIncluded) {\n nodeList.push(checkedNode);\n }\n\n return checkedNode;\n }\n\n return null;\n }).filter(function (node) {\n return node;\n });\n }\n\n if (!nodeList) {\n nodeList = [];\n dig(treeData); // Sort to keep the checked node length\n\n nodeList.sort(function (_ref2, _ref3) {\n var val1 = _ref2.node.props.value;\n var val2 = _ref3.node.props.value;\n var index1 = checkedValues.indexOf(val1);\n var index2 = checkedValues.indexOf(val2);\n return index1 - index2;\n });\n }\n }\n\n Object.defineProperty(extra, 'triggerNode', {\n get: function get() {\n warning(false, '`triggerNode` is deprecated. Please consider decoupling data with node.');\n generateMap();\n return triggerNode;\n }\n });\n Object.defineProperty(extra, 'allCheckedNodes', {\n get: function get() {\n warning(false, '`allCheckedNodes` is deprecated. Please consider decoupling data with node.');\n generateMap();\n\n if (showPosition) {\n return nodeList;\n }\n\n return nodeList.map(function (_ref4) {\n var node = _ref4.node;\n return node;\n });\n }\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\nfunction 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 = _objectSpread({}, 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 * Convert `treeData` or `children` into formatted `treeData`.\n * Will not re-calculate if `treeData` or `children` not change.\n */\n\n\nexport default function useTreeData(treeData, children, simpleMode) {\n return React.useMemo(function () {\n if (treeData) {\n return simpleMode ? parseSimpleTreeData(treeData, _objectSpread({\n id: 'id',\n pId: 'pId',\n rootPId: null\n }, simpleMode !== true ? simpleMode : {})) : treeData;\n }\n\n return convertChildrenToData(children);\n }, [children, simpleMode, treeData]);\n}","import * as React from 'react';\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\n\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from \"./valueUtil\";\n\nfunction warningProps(props) {\n var searchPlaceholder = props.searchPlaceholder,\n treeCheckStrictly = props.treeCheckStrictly,\n treeCheckable = props.treeCheckable,\n labelInValue = props.labelInValue,\n value = props.value,\n multiple = props.multiple;\n warning(!searchPlaceholder, '`searchPlaceholder` has been removed.');\n\n if (treeCheckStrictly && labelInValue === false) {\n warning(false, '`treeCheckStrictly` will force set `labelInValue` to `true`.');\n }\n\n if (labelInValue || treeCheckStrictly) {\n warning(toArray(value).every(function (val) {\n return val && _typeof(val) === 'object' && 'value' in val;\n }), 'Invalid prop `value` supplied to `TreeSelect`. You should use { label: string, value: string | number } or [{ label: string, value: string | number }] instead.');\n }\n\n if (treeCheckStrictly || multiple || treeCheckable) {\n warning(!value || Array.isArray(value), '`value` should be an array when `TreeSelect` is checkable or multiple.');\n } else {\n warning(!Array.isArray(value), '`value` should not be array when `TreeSelect` is single mode.');\n }\n}\n\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"prefixCls\", \"value\", \"defaultValue\", \"onChange\", \"onSelect\", \"onDeselect\", \"searchValue\", \"inputValue\", \"onSearch\", \"autoClearSearchValue\", \"filterTreeNode\", \"treeNodeFilterProp\", \"showCheckedStrategy\", \"treeNodeLabelProp\", \"multiple\", \"treeCheckable\", \"treeCheckStrictly\", \"labelInValue\", \"fieldNames\", \"treeDataSimpleMode\", \"treeData\", \"children\", \"loadData\", \"treeLoadedKeys\", \"onTreeLoad\", \"treeDefaultExpandAll\", \"treeExpandedKeys\", \"treeDefaultExpandedKeys\", \"onTreeExpand\", \"treeExpandAction\", \"virtual\", \"listHeight\", \"listItemHeight\", \"onDropdownVisibleChange\", \"dropdownMatchSelectWidth\", \"treeLine\", \"treeIcon\", \"showTreeIcon\", \"switcherIcon\", \"treeMotion\"];\nimport * as React from 'react';\nimport { BaseSelect } from 'rc-select';\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport useId from \"rc-select/es/hooks/useId\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport OptionList from \"./OptionList\";\nimport TreeNode from \"./TreeNode\";\nimport { formatStrategyValues, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from \"./utils/strategyUtil\";\nimport TreeSelectContext from \"./TreeSelectContext\";\nimport LegacyContext from \"./LegacyContext\";\nimport useTreeData from \"./hooks/useTreeData\";\nimport { toArray, fillFieldNames, isNil } from \"./utils/valueUtil\";\nimport useCache from \"./hooks/useCache\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport useDataEntities from \"./hooks/useDataEntities\";\nimport { fillAdditionalInfo, fillLegacyProps } from \"./utils/legacyUtil\";\nimport useCheckedKeys from \"./hooks/useCheckedKeys\";\nimport useFilterTreeData from \"./hooks/useFilterTreeData\";\nimport warningProps from \"./utils/warningPropsUtil\";\nimport warning from \"rc-util/es/warning\";\n\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\n\nvar TreeSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tree-select' : _props$prefixCls,\n value = props.value,\n defaultValue = props.defaultValue,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n searchValue = props.searchValue,\n inputValue = props.inputValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n filterTreeNode = props.filterTreeNode,\n _props$treeNodeFilter = props.treeNodeFilterProp,\n treeNodeFilterProp = _props$treeNodeFilter === void 0 ? 'value' : _props$treeNodeFilter,\n _props$showCheckedStr = props.showCheckedStrategy,\n showCheckedStrategy = _props$showCheckedStr === void 0 ? SHOW_CHILD : _props$showCheckedStr,\n treeNodeLabelProp = props.treeNodeLabelProp,\n multiple = props.multiple,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n labelInValue = props.labelInValue,\n fieldNames = props.fieldNames,\n treeDataSimpleMode = props.treeDataSimpleMode,\n treeData = props.treeData,\n children = props.children,\n loadData = props.loadData,\n treeLoadedKeys = props.treeLoadedKeys,\n onTreeLoad = props.onTreeLoad,\n treeDefaultExpandAll = props.treeDefaultExpandAll,\n treeExpandedKeys = props.treeExpandedKeys,\n treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,\n onTreeExpand = props.onTreeExpand,\n treeExpandAction = props.treeExpandAction,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n treeLine = props.treeLine,\n treeIcon = props.treeIcon,\n showTreeIcon = props.showTreeIcon,\n switcherIcon = props.switcherIcon,\n treeMotion = props.treeMotion,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var mergedId = useId(id);\n var treeConduction = treeCheckable && !treeCheckStrictly;\n var mergedCheckable = treeCheckable || treeCheckStrictly;\n var mergedLabelInValue = treeCheckStrictly || labelInValue;\n var mergedMultiple = mergedCheckable || multiple;\n\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n internalValue = _useMergedState2[0],\n setInternalValue = _useMergedState2[1]; // ========================== Warning ===========================\n\n\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n } // ========================= FieldNames =========================\n\n\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames);\n },\n /* eslint-disable react-hooks/exhaustive-deps */\n [JSON.stringify(fieldNames)]\n /* eslint-enable react-hooks/exhaustive-deps */\n ); // =========================== Search ===========================\n\n var _useMergedState3 = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedSearchValue = _useMergedState4[0],\n setSearchValue = _useMergedState4[1];\n\n var onInternalSearch = function onInternalSearch(searchText) {\n setSearchValue(searchText);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n }; // ============================ Data ============================\n // `useTreeData` only do convert of `children` or `simpleMode`.\n // Else will return origin `treeData` for perf consideration.\n // Do not do anything to loop the data.\n\n\n var mergedTreeData = useTreeData(treeData, children, treeDataSimpleMode);\n\n var _useDataEntities = useDataEntities(mergedTreeData, mergedFieldNames),\n keyEntities = _useDataEntities.keyEntities,\n valueEntities = _useDataEntities.valueEntities;\n /** Get `missingRawValues` which not exist in the tree yet */\n\n\n var splitRawValues = React.useCallback(function (newRawValues) {\n var missingRawValues = [];\n var existRawValues = []; // Keep missing value in the cache\n\n newRawValues.forEach(function (val) {\n if (valueEntities.has(val)) {\n existRawValues.push(val);\n } else {\n missingRawValues.push(val);\n }\n });\n return {\n missingRawValues: missingRawValues,\n existRawValues: existRawValues\n };\n }, [valueEntities]); // Filtered Tree\n\n var filteredTreeData = useFilterTreeData(mergedTreeData, mergedSearchValue, {\n fieldNames: mergedFieldNames,\n treeNodeFilterProp: treeNodeFilterProp,\n filterTreeNode: filterTreeNode\n }); // =========================== Label ============================\n\n var getLabel = React.useCallback(function (item) {\n if (item) {\n if (treeNodeLabelProp) {\n return item[treeNodeLabelProp];\n } // Loop from fieldNames\n\n\n var titleList = mergedFieldNames._title;\n\n for (var i = 0; i < titleList.length; i += 1) {\n var title = item[titleList[i]];\n\n if (title !== undefined) {\n return title;\n }\n }\n }\n }, [mergedFieldNames, treeNodeLabelProp]); // ========================= Wrap Value =========================\n\n var toLabeledValues = React.useCallback(function (draftValues) {\n var values = toArray(draftValues);\n return values.map(function (val) {\n if (isRawValue(val)) {\n return {\n value: val\n };\n }\n\n return val;\n });\n }, []);\n var convert2LabelValues = React.useCallback(function (draftValues) {\n var values = toLabeledValues(draftValues);\n return values.map(function (item) {\n var rawLabel = item.label;\n var rawValue = item.value,\n rawHalfChecked = item.halfChecked;\n var rawDisabled;\n var entity = valueEntities.get(rawValue); // Fill missing label & status\n\n if (entity) {\n var _rawLabel;\n\n rawLabel = (_rawLabel = rawLabel) !== null && _rawLabel !== void 0 ? _rawLabel : getLabel(entity.node);\n rawDisabled = entity.node.disabled;\n } else if (rawLabel === undefined) {\n // We try to find in current `labelInValue` value\n var labelInValueItem = toLabeledValues(internalValue).find(function (labeledItem) {\n return labeledItem.value === rawValue;\n });\n rawLabel = labelInValueItem.label;\n }\n\n return {\n label: rawLabel,\n value: rawValue,\n halfChecked: rawHalfChecked,\n disabled: rawDisabled\n };\n });\n }, [valueEntities, getLabel, toLabeledValues, internalValue]); // =========================== Values ===========================\n\n var rawMixedLabeledValues = React.useMemo(function () {\n return toLabeledValues(internalValue);\n }, [toLabeledValues, internalValue]); // Split value into full check and half check\n\n var _React$useMemo = React.useMemo(function () {\n var fullCheckValues = [];\n var halfCheckValues = [];\n rawMixedLabeledValues.forEach(function (item) {\n if (item.halfChecked) {\n halfCheckValues.push(item);\n } else {\n fullCheckValues.push(item);\n }\n });\n return [fullCheckValues, halfCheckValues];\n }, [rawMixedLabeledValues]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n rawLabeledValues = _React$useMemo2[0],\n rawHalfLabeledValues = _React$useMemo2[1]; // const [mergedValues] = useCache(rawLabeledValues);\n\n\n var rawValues = React.useMemo(function () {\n return rawLabeledValues.map(function (item) {\n return item.value;\n });\n }, [rawLabeledValues]); // Convert value to key. Will fill missed keys for conduct check.\n\n var _useCheckedKeys = useCheckedKeys(rawLabeledValues, rawHalfLabeledValues, treeConduction, keyEntities),\n _useCheckedKeys2 = _slicedToArray(_useCheckedKeys, 2),\n rawCheckedValues = _useCheckedKeys2[0],\n rawHalfCheckedValues = _useCheckedKeys2[1]; // Convert rawCheckedKeys to check strategy related values\n\n\n var displayValues = React.useMemo(function () {\n // Collect keys which need to show\n var displayKeys = formatStrategyValues(rawCheckedValues, showCheckedStrategy, keyEntities, mergedFieldNames); // Convert to value and filled with label\n\n var values = displayKeys.map(function (key) {\n var _keyEntities$key$node, _keyEntities$key, _keyEntities$key$node2;\n\n return (_keyEntities$key$node = (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 ? void 0 : (_keyEntities$key$node2 = _keyEntities$key.node) === null || _keyEntities$key$node2 === void 0 ? void 0 : _keyEntities$key$node2[mergedFieldNames.value]) !== null && _keyEntities$key$node !== void 0 ? _keyEntities$key$node : key;\n }); // Back fill with origin label\n\n var labeledValues = values.map(function (val) {\n var targetItem = rawLabeledValues.find(function (item) {\n return item.value === val;\n });\n return {\n value: val,\n label: targetItem === null || targetItem === void 0 ? void 0 : targetItem.label\n };\n });\n var rawDisplayValues = convert2LabelValues(labeledValues);\n var firstVal = rawDisplayValues[0];\n\n if (!mergedMultiple && firstVal && isNil(firstVal.value) && isNil(firstVal.label)) {\n return [];\n }\n\n return rawDisplayValues.map(function (item) {\n var _item$label;\n\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mergedFieldNames, mergedMultiple, rawCheckedValues, rawLabeledValues, convert2LabelValues, showCheckedStrategy, keyEntities]);\n\n var _useCache = useCache(displayValues),\n _useCache2 = _slicedToArray(_useCache, 1),\n cachedDisplayValues = _useCache2[0]; // =========================== Change ===========================\n\n\n var triggerChange = useRefFunc(function (newRawValues, extra, source) {\n var labeledValues = convert2LabelValues(newRawValues);\n setInternalValue(labeledValues); // Clean up if needed\n\n if (autoClearSearchValue) {\n setSearchValue('');\n } // Generate rest parameters is costly, so only do it when necessary\n\n\n if (onChange) {\n var eventValues = newRawValues;\n\n if (treeConduction) {\n var formattedKeyList = formatStrategyValues(newRawValues, showCheckedStrategy, keyEntities, mergedFieldNames);\n eventValues = formattedKeyList.map(function (key) {\n var entity = valueEntities.get(key);\n return entity ? entity.node[mergedFieldNames.value] : key;\n });\n }\n\n var _ref = extra || {\n triggerValue: undefined,\n selected: undefined\n },\n triggerValue = _ref.triggerValue,\n selected = _ref.selected;\n\n var returnRawValues = eventValues; // We need fill half check back\n\n if (treeCheckStrictly) {\n var halfValues = rawHalfLabeledValues.filter(function (item) {\n return !eventValues.includes(item.value);\n });\n returnRawValues = [].concat(_toConsumableArray(returnRawValues), _toConsumableArray(halfValues));\n }\n\n var returnLabeledValues = convert2LabelValues(returnRawValues);\n var additionalInfo = {\n // [Legacy] Always return as array contains label & value\n preValue: rawLabeledValues,\n triggerValue: triggerValue\n }; // [Legacy] Fill legacy data if user query.\n // This is expansive that we only fill when user query\n // https://github.com/react-component/tree-select/blob/fe33eb7c27830c9ac70cd1fdb1ebbe7bc679c16a/src/Select.jsx\n\n var showPosition = true;\n\n if (treeCheckStrictly || source === 'selection' && !selected) {\n showPosition = false;\n }\n\n fillAdditionalInfo(additionalInfo, triggerValue, newRawValues, mergedTreeData, showPosition, mergedFieldNames);\n\n if (mergedCheckable) {\n additionalInfo.checked = selected;\n } else {\n additionalInfo.selected = selected;\n }\n\n var returnValues = mergedLabelInValue ? returnLabeledValues : returnLabeledValues.map(function (item) {\n return item.value;\n });\n onChange(mergedMultiple ? returnValues : returnValues[0], mergedLabelInValue ? null : returnLabeledValues.map(function (item) {\n return item.label;\n }), additionalInfo);\n }\n }); // ========================== Options ===========================\n\n /** Trigger by option list */\n\n var onOptionSelect = React.useCallback(function (selectedKey, _ref2) {\n var _node$mergedFieldName;\n\n var selected = _ref2.selected,\n source = _ref2.source;\n var entity = keyEntities[selectedKey];\n var node = entity === null || entity === void 0 ? void 0 : entity.node;\n var selectedValue = (_node$mergedFieldName = node === null || node === void 0 ? void 0 : node[mergedFieldNames.value]) !== null && _node$mergedFieldName !== void 0 ? _node$mergedFieldName : selectedKey; // Never be falsy but keep it safe\n\n if (!mergedMultiple) {\n // Single mode always set value\n triggerChange([selectedValue], {\n selected: true,\n triggerValue: selectedValue\n }, 'option');\n } else {\n var newRawValues = selected ? [].concat(_toConsumableArray(rawValues), [selectedValue]) : rawCheckedValues.filter(function (v) {\n return v !== selectedValue;\n }); // Add keys if tree conduction\n\n if (treeConduction) {\n // Should keep missing values\n var _splitRawValues = splitRawValues(newRawValues),\n missingRawValues = _splitRawValues.missingRawValues,\n existRawValues = _splitRawValues.existRawValues;\n\n var keyList = existRawValues.map(function (val) {\n return valueEntities.get(val).key;\n }); // Conduction by selected or not\n\n var checkedKeys;\n\n if (selected) {\n var _conductCheck = conductCheck(keyList, true, keyEntities);\n\n checkedKeys = _conductCheck.checkedKeys;\n } else {\n var _conductCheck2 = conductCheck(keyList, {\n checked: false,\n halfCheckedKeys: rawHalfCheckedValues\n }, keyEntities);\n\n checkedKeys = _conductCheck2.checkedKeys;\n } // Fill back of keys\n\n\n newRawValues = [].concat(_toConsumableArray(missingRawValues), _toConsumableArray(checkedKeys.map(function (key) {\n return keyEntities[key].node[mergedFieldNames.value];\n })));\n }\n\n triggerChange(newRawValues, {\n selected: selected,\n triggerValue: selectedValue\n }, source || 'option');\n } // Trigger select event\n\n\n if (selected || !mergedMultiple) {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedValue, fillLegacyProps(node));\n } else {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectedValue, fillLegacyProps(node));\n }\n }, [splitRawValues, valueEntities, keyEntities, mergedFieldNames, mergedMultiple, rawValues, triggerChange, treeConduction, onSelect, onDeselect, rawCheckedValues, rawHalfCheckedValues]); // ========================== Dropdown ==========================\n\n var onInternalDropdownVisibleChange = React.useCallback(function (open) {\n if (onDropdownVisibleChange) {\n var legacyParam = {};\n Object.defineProperty(legacyParam, 'documentClickClose', {\n get: function get() {\n warning(false, 'Second param of `onDropdownVisibleChange` has been removed.');\n return false;\n }\n });\n onDropdownVisibleChange(open, legacyParam);\n }\n }, [onDropdownVisibleChange]); // ====================== Display Change ========================\n\n var onDisplayValuesChange = useRefFunc(function (newValues, info) {\n var newRawValues = newValues.map(function (item) {\n return item.value;\n });\n\n if (info.type === 'clear') {\n triggerChange(newRawValues, {}, 'selection');\n return;\n } // TreeSelect only have multiple mode which means display change only has remove\n\n\n if (info.values.length) {\n onOptionSelect(info.values[0].value, {\n selected: false,\n source: 'selection'\n });\n }\n }); // ========================== Context ===========================\n\n var treeSelectContext = React.useMemo(function () {\n return {\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeData: filteredTreeData,\n fieldNames: mergedFieldNames,\n onSelect: onOptionSelect,\n treeExpandAction: treeExpandAction\n };\n }, [virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, filteredTreeData, mergedFieldNames, onOptionSelect, treeExpandAction]); // ======================= Legacy Context =======================\n\n var legacyContext = React.useMemo(function () {\n return {\n checkable: mergedCheckable,\n loadData: loadData,\n treeLoadedKeys: treeLoadedKeys,\n onTreeLoad: onTreeLoad,\n checkedKeys: rawCheckedValues,\n halfCheckedKeys: rawHalfCheckedValues,\n treeDefaultExpandAll: treeDefaultExpandAll,\n treeExpandedKeys: treeExpandedKeys,\n treeDefaultExpandedKeys: treeDefaultExpandedKeys,\n onTreeExpand: onTreeExpand,\n treeIcon: treeIcon,\n treeMotion: treeMotion,\n showTreeIcon: showTreeIcon,\n switcherIcon: switcherIcon,\n treeLine: treeLine,\n treeNodeFilterProp: treeNodeFilterProp,\n keyEntities: keyEntities\n };\n }, [mergedCheckable, loadData, treeLoadedKeys, onTreeLoad, rawCheckedValues, rawHalfCheckedValues, treeDefaultExpandAll, treeExpandedKeys, treeDefaultExpandedKeys, onTreeExpand, treeIcon, treeMotion, showTreeIcon, switcherIcon, treeLine, treeNodeFilterProp, keyEntities]); // =========================== Render ===========================\n\n return /*#__PURE__*/React.createElement(TreeSelectContext.Provider, {\n value: treeSelectContext\n }, /*#__PURE__*/React.createElement(LegacyContext.Provider, {\n value: legacyContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({\n ref: ref\n }, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n mode: mergedMultiple ? 'multiple' : undefined // >>> Display Value\n ,\n displayValues: cachedDisplayValues,\n onDisplayValuesChange: onDisplayValuesChange // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch // >>> Options\n ,\n OptionList: OptionList,\n emptyOptions: !mergedTreeData.length,\n onDropdownVisibleChange: onInternalDropdownVisibleChange,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }))));\n}); // Assign name for Debug\n\nif (process.env.NODE_ENV !== 'production') {\n TreeSelect.displayName = 'TreeSelect';\n}\n\nvar GenericTreeSelect = TreeSelect;\nGenericTreeSelect.TreeNode = TreeNode;\nGenericTreeSelect.SHOW_ALL = SHOW_ALL;\nGenericTreeSelect.SHOW_PARENT = SHOW_PARENT;\nGenericTreeSelect.SHOW_CHILD = SHOW_CHILD;\nexport default GenericTreeSelect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport warning from \"rc-util/es/warning\";\nimport { isNil } from \"../utils/valueUtil\";\nexport default (function (treeData, fieldNames) {\n return React.useMemo(function () {\n var collection = convertDataToEntities(treeData, {\n fieldNames: fieldNames,\n initWrapper: function initWrapper(wrapper) {\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n valueEntities: new Map()\n });\n },\n processEntity: function processEntity(entity, wrapper) {\n var val = entity.node[fieldNames.value]; // Check if exist same value\n\n if (process.env.NODE_ENV !== 'production') {\n var key = entity.node.key;\n warning(!isNil(val), 'TreeNode `value` is invalidate: undefined');\n warning(!wrapper.valueEntities.has(val), \"Same `value` exist in the tree: \".concat(val));\n warning(!key || String(key) === String(val), \"`key` or `value` with TreeNode must be the same or you can remove one of them. key: \".concat(key, \", value: \").concat(val, \".\"));\n }\n\n wrapper.valueEntities.set(val, entity);\n }\n });\n return collection;\n }, [treeData, fieldNames]);\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { fillLegacyProps } from \"../utils/legacyUtil\";\nexport default (function (treeData, searchValue, _ref) {\n var treeNodeFilterProp = _ref.treeNodeFilterProp,\n filterTreeNode = _ref.filterTreeNode,\n fieldNames = _ref.fieldNames;\n var fieldChildren = fieldNames.children;\n return React.useMemo(function () {\n if (!searchValue || filterTreeNode === false) {\n return treeData;\n }\n\n var filterOptionFunc;\n\n if (typeof filterTreeNode === 'function') {\n filterOptionFunc = filterTreeNode;\n } else {\n var upperStr = searchValue.toUpperCase();\n\n filterOptionFunc = function filterOptionFunc(_, dataNode) {\n var value = dataNode[treeNodeFilterProp];\n return String(value).toUpperCase().includes(upperStr);\n };\n }\n\n function dig(list) {\n var keepAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return list.map(function (dataNode) {\n var children = dataNode[fieldChildren];\n var match = keepAll || filterOptionFunc(searchValue, fillLegacyProps(dataNode));\n var childList = dig(children || [], match);\n\n if (match || childList.length) {\n return _objectSpread(_objectSpread({}, dataNode), {}, _defineProperty({\n isLeaf: undefined\n }, fieldChildren, childList));\n }\n\n return null;\n }).filter(function (node) {\n return node;\n });\n }\n\n return dig(treeData);\n }, [treeData, searchValue, fieldChildren, treeNodeFilterProp, filterTreeNode]);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nexport default (function (rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities) {\n return React.useMemo(function () {\n var checkedKeys = rawLabeledValues.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n var halfCheckedKeys = rawHalfCheckedValues.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n var missingValues = checkedKeys.filter(function (key) {\n return !keyEntities[key];\n });\n\n if (treeConduction) {\n var _conductCheck = conductCheck(checkedKeys, true, keyEntities);\n\n checkedKeys = _conductCheck.checkedKeys;\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n }\n\n return [// Checked keys should fill with missing keys which should de-duplicated\n Array.from(new Set([].concat(_toConsumableArray(missingValues), _toConsumableArray(checkedKeys)))), // Half checked keys\n halfCheckedKeys];\n }, [rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n\n/**\n * This function will try to call requestIdleCallback if available to save performance.\n * No need `getLabel` here since already fetch on `rawLabeledValue`.\n */\nexport default (function (values) {\n var cacheRef = React.useRef({\n valueLabels: new Map()\n });\n return React.useMemo(function () {\n var valueLabels = cacheRef.current.valueLabels;\n var valueLabelsCache = new Map();\n var filledValues = values.map(function (item) {\n var _item$label;\n\n var value = item.value;\n var mergedLabel = (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : valueLabels.get(value); // Save in cache\n\n valueLabelsCache.set(value, mergedLabel);\n return _objectSpread(_objectSpread({}, item), {}, {\n label: mergedLabel\n });\n });\n cacheRef.current.valueLabels = valueLabelsCache;\n return [filledValues];\n }, [values]);\n});","import TreeSelect from \"./TreeSelect\";\nimport TreeNode from \"./TreeNode\";\nimport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from \"./utils/strategyUtil\";\nexport { TreeNode, SHOW_ALL, SHOW_CHILD, SHOW_PARENT };\nexport default TreeSelect;","import { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { genTreeStyle } from '../../tree/style';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n treePrefixCls,\n colorBgElevated\n } = token;\n const treeCls = `.${treePrefixCls}`;\n return [\n // ======================================================\n // == Dropdown ==\n // ======================================================\n {\n [`${componentCls}-dropdown`]: [{\n padding: `${token.paddingXS}px ${token.paddingXS / 2}px`\n },\n // ====================== Tree ======================\n genTreeStyle(treePrefixCls, mergeToken(token, {\n colorBgContainer: colorBgElevated\n })), {\n [treeCls]: {\n borderRadius: 0,\n '&-list-holder-inner': {\n alignItems: 'stretch',\n [`${treeCls}-treenode`]: {\n [`${treeCls}-node-content-wrapper`]: {\n flex: 'auto'\n }\n }\n }\n }\n },\n // ==================== Checkbox ====================\n getCheckboxStyle(`${treePrefixCls}-checkbox`, token),\n // ====================== RTL =======================\n {\n '&-rtl': {\n direction: 'rtl',\n [`${treeCls}-switcher${treeCls}-switcher_close`]: {\n [`${treeCls}-switcher-icon svg`]: {\n transform: 'rotate(90deg)'\n }\n }\n }\n }]\n }];\n};\n// ============================== Export ==============================\nexport default function useTreeSelectStyle(prefixCls, treePrefixCls) {\n return genComponentStyleHook('TreeSelect', token => {\n const treeSelectToken = mergeToken(token, {\n treePrefixCls\n });\n return [genBaseStyle(treeSelectToken)];\n })(prefixCls);\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcTreeSelect, { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeNode } from 'rc-tree-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport genPurePanel from '../_util/PurePanel';\nimport useSelectStyle from '../select/style';\nimport getIcons from '../select/utils/iconUtil';\nimport renderSwitcherIcon from '../tree/utils/iconUtil';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { useCompactItemContext } from '../space/Compact';\nimport warning from '../_util/warning';\nimport useStyle from './style';\nconst InternalTreeSelect = (_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n className,\n treeCheckable,\n multiple,\n listHeight = 256,\n listItemHeight = 26,\n placement,\n notFoundContent,\n switcherIcon,\n treeLine,\n getPopupContainer,\n popupClassName,\n dropdownClassName,\n treeIcon = false,\n transitionName,\n choiceTransitionName = '',\n status: customStatus,\n showArrow,\n treeExpandAction\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"size\", \"disabled\", \"bordered\", \"className\", \"treeCheckable\", \"multiple\", \"listHeight\", \"listItemHeight\", \"placement\", \"notFoundContent\", \"switcherIcon\", \"treeLine\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"treeIcon\", \"transitionName\", \"choiceTransitionName\", \"status\", \"showArrow\", \"treeExpandAction\"]);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction,\n virtual,\n dropdownMatchSelectWidth\n } = React.useContext(ConfigContext);\n const size = React.useContext(SizeContext);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(multiple !== false || !treeCheckable, 'TreeSelect', '`multiple` will always be `true` when `treeCheckable` is true') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'TreeSelect', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n const rootPrefixCls = getPrefixCls();\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const treePrefixCls = getPrefixCls('select-tree', customizePrefixCls);\n const treeSelectPrefixCls = getPrefixCls('tree-select', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const [wrapSelectSSR, hashId] = useSelectStyle(prefixCls);\n const [wrapTreeSelectSSR] = useStyle(treeSelectPrefixCls, treePrefixCls);\n const mergedDropdownClassName = classNames(popupClassName || dropdownClassName, `${treeSelectPrefixCls}-dropdown`, {\n [`${treeSelectPrefixCls}-dropdown-rtl`]: direction === 'rtl'\n }, hashId);\n const isMultiple = !!(treeCheckable || multiple);\n const mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !isMultiple;\n // ===================== Form =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Icons =====================\n const {\n suffixIcon,\n removeIcon,\n clearIcon\n } = getIcons(Object.assign(Object.assign({}, props), {\n multiple: isMultiple,\n showArrow: mergedShowArrow,\n hasFeedback,\n feedbackIcon,\n prefixCls\n }));\n // ===================== Empty =====================\n let mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else {\n mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }\n // ==================== Render =====================\n const selectProps = omit(props, ['suffixIcon', 'itemIcon', 'removeIcon', 'clearIcon', 'switcherIcon']);\n // ===================== Placement =====================\n const getPlacement = () => {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n const mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const mergedClassName = classNames(!customizePrefixCls && treeSelectPrefixCls, {\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className, hashId);\n const returnNode = /*#__PURE__*/React.createElement(RcTreeSelect, Object.assign({\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n disabled: mergedDisabled\n }, selectProps, {\n ref: ref,\n prefixCls: prefixCls,\n className: mergedClassName,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n treeCheckable: treeCheckable ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-tree-checkbox-inner`\n }) : treeCheckable,\n treeLine: !!treeLine,\n inputIcon: suffixIcon,\n multiple: multiple,\n placement: getPlacement(),\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n switcherIcon: nodeProps => renderSwitcherIcon(treePrefixCls, switcherIcon, nodeProps, treeLine),\n showTreeIcon: treeIcon,\n notFoundContent: mergedNotFound,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n treeMotion: null,\n dropdownClassName: mergedDropdownClassName,\n choiceTransitionName: getTransitionName(rootPrefixCls, '', choiceTransitionName),\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), transitionName),\n showArrow: hasFeedback || showArrow,\n treeExpandAction: treeExpandAction\n }));\n return wrapSelectSSR(wrapTreeSelectSSR(returnNode));\n};\nconst TreeSelectRef = /*#__PURE__*/React.forwardRef(InternalTreeSelect);\nconst TreeSelect = TreeSelectRef;\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TreeSelect);\nTreeSelect.TreeNode = TreeNode;\nTreeSelect.SHOW_ALL = SHOW_ALL;\nTreeSelect.SHOW_PARENT = SHOW_PARENT;\nTreeSelect.SHOW_CHILD = SHOW_CHILD;\nTreeSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport { TreeNode };\nexport default TreeSelect;","import { Select, TreeSelect } from \"antd\";\r\nimport _, { debounce, get } from \"lodash\";\r\nimport { useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAsyncFn, useEffectOnce } from \"react-use\";\r\nimport { categoryTreeOption } from \"../../utils\";\r\nimport { ISearchPost } from \"../../models/post\";\r\nimport {\r\n ICategory,\r\n ISearchCategory,\r\n} from \"../../screens/category/category.model\";\r\nimport {\r\n getCategoriesTree,\r\n getCategory,\r\n} from \"../../screens/category/services\";\r\nimport { getCategoryDetail } from \"../../screens/category/slice\";\r\n// import { ExportToExcel } from '../../../app/components/exportExcel';\r\n// import { useAppSelector } from '../../../app/hooks';\r\n// import { searchCourse } from '../../../services/course';\r\n// import { getCoursesAction, setSearchParamAction, setStatusModalAction } from '../slice';\r\n// import { columnTable } from '../validation';\r\nconst { Option } = Select;\r\n\r\nconst defaultState: ISearchPost = {\r\n category: undefined,\r\n content: undefined,\r\n languages: undefined,\r\n name: undefined,\r\n title: undefined,\r\n order: undefined,\r\n page: 1,\r\n sort: undefined,\r\n};\r\n\r\nconst CategorySelectTreeComponent = ({\r\n filter,\r\n categoryId,\r\n onSelect,\r\n onClear,\r\n categoryIds,\r\n languagesOther\r\n}: {\r\n filter?: any;\r\n languagesOther?: any[];\r\n categoryIds?: any;\r\n categoryId?: string;\r\n onSelect?: (categoryId: string) => void;\r\n onClear?: () => void;\r\n}) => {\r\n // start category\r\n const languaOther = languagesOther ? languagesOther: [];\r\n\r\n const [categorieDetailState, categorieDetaiStateFn] = useAsyncFn(\r\n async (id: string) => {\r\n return getCategory(id);\r\n }\r\n );\r\n\r\n const [categoriesState, categoriesStateFn] = useAsyncFn(\r\n async (params: ISearchCategory) => {\r\n return getCategoriesTree({ ...params, ...filter });\r\n }\r\n );\r\n\r\n const debounceLoadCategory = useMemo(\r\n () =>\r\n debounce((query: ISearchCategory) => {\r\n return categoriesStateFn({...query, ...filter});\r\n }, 500),\r\n [categoriesStateFn, filter]\r\n );\r\n\r\n const categoryOptions = () => {\r\n const categories: ICategory[] = get(categoriesState, \"value.data\", []);\r\n const data = categoryTreeOption(categories);\r\n return [...languaOther, ...data];\r\n };\r\n\r\n //#end category\r\n\r\n useEffectOnce(() => {\r\n categoriesStateFn({});\r\n if (categoryId) {\r\n categorieDetaiStateFn(categoryId);\r\n }\r\n });\r\n return (\r\n <>\r\n debounceLoadCategory({ title })}\r\n filterTreeNode={(search, item) =>\r\n String(item.title).toLowerCase().indexOf(search.toLowerCase()) >= 0\r\n }\r\n treeData={categoryOptions()}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CategorySelectTreeComponent;\r\n","import { DISPLAY_TYPE_CATEGORY_ENUM } from \"./enum\";\r\nimport aboutUs1 from \"../imgs/displayType/about_us_1.png\";\r\nimport statistical2 from \"../imgs/displayType/statistical_2.png\";\r\nimport businessAreas3 from \"../imgs/displayType/business_areas_3.png\";\r\nimport featuredNews4 from \"../imgs/displayType/featured_news_4.png\";\r\nimport partnerAndCertificate5 from \"../imgs/displayType/partner_and_certificate_5.png\";\r\nimport introduce6 from \"../imgs/displayType/introduce_6.png\";\r\nimport missionAndVision8 from \"../imgs/displayType/mission_and_vision_8.png\";\r\nimport leadership9 from \"../imgs/displayType/leadership_9.png\";\r\nimport news10 from \"../imgs/displayType/news_10.png\";\r\nimport news11 from \"../imgs/displayType/news_11.png\";\r\nimport human12 from \"../imgs/displayType/human_12.png\";\r\nimport product20 from \"../imgs/displayType/product_20.png\";\r\nimport categoryProduct21 from \"../imgs/displayType/category_product_21.png\";\r\n\r\nexport const DisplayTypeCategory = [\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.ABOUT_US}. Về chúng tôi`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.ABOUT_US,\r\n src: aboutUs1\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.STATISTICAL}. Thống kê`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.STATISTICAL,\r\n src: statistical2\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.BUSINESS_AREAS}. Lĩnh vực kinh doanh`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.BUSINESS_AREAS,\r\n src: businessAreas3\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.FEATURED_NEWS}. Tin tức nổi bật`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.FEATURED_NEWS,\r\n src: featuredNews4\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.PARTNER_AND_CERTIFICATE}. Đối tác và chứng chỉ`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.PARTNER_AND_CERTIFICATE,\r\n src: partnerAndCertificate5\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.INTRODUCE}. Giới thiệu`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.INTRODUCE,\r\n src: introduce6\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.MISSION_AND_VISION}. Sứ mệnh và tầm nhìn`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.MISSION_AND_VISION,\r\n src: missionAndVision8\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.LEADERSHIP}. Ban lãnh đạo`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.LEADERSHIP,\r\n src: leadership9\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.NEWS}. Tin tức`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.NEWS,\r\n src: news10\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.NEWS11}. Tin tức 2`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.NEWS11,\r\n src: news11\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.HUMAN}. Con người`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.HUMAN,\r\n src: human12\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.PRODUCT}. Sản phẩm`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.PRODUCT,\r\n src: product20\r\n },\r\n {\r\n label: `${DISPLAY_TYPE_CATEGORY_ENUM.CATEGORY_PRODUCT}. Danh mục sản phẩm`,\r\n value: DISPLAY_TYPE_CATEGORY_ENUM.CATEGORY_PRODUCT,\r\n src: categoryProduct21\r\n },\r\n ];","import { Card } from \"antd\";\r\nimport { DisplayTypeCategory } from \"../../utils/displayType\";\r\n\r\nconst DisplayTypeComponent = () => {\r\n return (\r\n <>\r\n {DisplayTypeCategory.map((item) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default DisplayTypeComponent;\r\n","import { useEffect, useMemo, useState } from \"react\";\r\nimport { cloneDeep, debounce, get, set } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../../app/hooks\";\r\nimport \"../../styles.scss\";\r\nimport {\r\n Card,\r\n Form,\r\n Input,\r\n Divider,\r\n Button,\r\n Row,\r\n Col,\r\n Select,\r\n Switch,\r\n Modal,\r\n} from \"antd\";\r\n\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport { EyeOutlined } from \"@ant-design/icons\";\r\nimport { useAsyncFn, useEffectOnce } from \"react-use\";\r\nimport { getBanners } from \"../../../banner/services\";\r\nimport { BannerInterface, ISearchBanner } from \"../../../banner/banner.model\";\r\nimport CategorySelectTreeComponent from \"../../../../Layout/CategorySelectTree\";\r\nimport UploadImgComponent from \"../../../../Layout/uploadImg\";\r\nimport { FileTypeEnum } from \"../../../../utils/enum\";\r\nimport type { SelectProps } from \"antd\";\r\nimport DisplayTypeComponent from \"../../../../Layout/DisplayType\";\r\nimport { DisplayTypeCategory } from \"../../../../utils/displayType\";\r\n\r\nconst optionsDisplay: SelectProps[\"options\"] = DisplayTypeCategory;\r\n\r\nconst { Option } = Select;\r\nconst { TextArea } = Input;\r\n\r\nconst CreateCategoryComponent = (props: any) => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const [form] = Form.useForm();\r\n form.setFieldsValue(props.categoryInit);\r\n const [displayTypeCategoryData, setDisplayTypeCategoryData] =\r\n useState(DisplayTypeCategory);\r\n const { id }: any = useParams();\r\n\r\n const [bannerState, bannerStateFn] = useAsyncFn(\r\n async (params: ISearchBanner) => {\r\n return getBanners(params);\r\n }\r\n );\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n\r\n const showModal = () => {\r\n setIsModalOpen(true);\r\n };\r\n\r\n const handleOk = () => {\r\n setIsModalOpen(false);\r\n };\r\n\r\n const handleCancel = () => {\r\n setIsModalOpen(false);\r\n };\r\n\r\n const debounceLoadBanner = useMemo(\r\n () => debounce((query: ISearchBanner) => bannerStateFn(query), 500),\r\n [bannerStateFn]\r\n );\r\n //#endregion declare\r\n\r\n //#region useEffect\r\n\r\n const _renderBannerOptions = () => {\r\n const elements: JSX.Element[] = [];\r\n\r\n const banners: BannerInterface[] = get(bannerState, \"value.data\", []);\r\n const bannerIds: BannerInterface[] = get(bannerState, \"value.data\", []);\r\n let bannerList = [...banners.filter((m) => m.id !== id)];\r\n if (\r\n get(bannerIds, \"[0].id\") &&\r\n !banners.find((b) => b.id === bannerIds[0].id)\r\n ) {\r\n bannerList = [...bannerIds, ...banners];\r\n }\r\n bannerList.forEach((category) => {\r\n elements.push(\r\n \r\n );\r\n });\r\n return elements;\r\n };\r\n\r\n const onChangeUrl = (value: any, path: string) => {\r\n props.onCommonPoint(value, path, props.commonPoint, props.languageDetail);\r\n };\r\n const selectedCategory = (parentId: string) => {\r\n props.onCommonPoint(\r\n parentId,\r\n \"parentId\",\r\n props.commonPoint,\r\n props.languageDetail\r\n );\r\n // setCategory({ ...category, parentId });\r\n };\r\n const onClearCategory = () => {\r\n props.onCommonPoint(\r\n undefined,\r\n \"parentId\",\r\n props.commonPoint,\r\n props.languageDetail\r\n );\r\n // setCategory({ ...category, parentId });\r\n };\r\n const selectedBanner = (bannerId: number) => {\r\n props.onCommonPoint(\r\n bannerId,\r\n \"bannerId\",\r\n props.commonPoint,\r\n props.languageDetail\r\n );\r\n // setCategory({ ...category, bannerId });s\r\n };\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onFinish = async () => {\r\n // _onSubmitCourse();\r\n props.onSubmit(props.languageDetail, props.commonPoint);\r\n };\r\n\r\n useEffectOnce(() => {\r\n bannerStateFn({});\r\n });\r\n useEffect(() => {}, [dispatch, id]);\r\n\r\n const typeArray = new Array(50).fill(0).map((item, index) => ({\r\n value: index + 1,\r\n label: index + 1,\r\n }));\r\n const onSearchDisplayTypeCategoryData = (search: string) => {\r\n let newData = cloneDeep(displayTypeCategoryData);\r\n newData = newData.filter((type) => type.label.includes(search));\r\n setDisplayTypeCategoryData(newData);\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n props.setPostListIndex(\r\n e.target.value,\r\n \"title\",\r\n props.categoryInit.language,\r\n props.languageDetail,\r\n props.commonPoint\r\n )\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n debounceLoadBanner({ name })}\r\n >\r\n {_renderBannerOptions()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n props.onCommonPoint(\r\n e.target.value,\r\n \"indexSort\",\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onCommonPoint(\r\n e.target.value,\r\n \"slug\",\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n // onSearchDisplayTypeCategoryData(name)\r\n // }\r\n filterOption={(inputValue, option) =>\r\n (option &&\r\n option.label &&\r\n option?.label\r\n .toString()\r\n .toLowerCase()\r\n .includes(inputValue.toLowerCase())) ||\r\n false\r\n }\r\n onChange={(value) =>\r\n props.onCommonPoint(\r\n value,\r\n \"type\",\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n options={optionsDisplay}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n props.onCommonPoint(\r\n !props.categoryInit.isMenu,\r\n \"isMenu\",\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onCommonPoint(\r\n !props.commonPoint.isHome,\r\n \"isHome\",\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n props.onCommonPoint(\r\n !props.commonPoint.isHomePage,\r\n \"isHomePage\",\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n onChangeUrl(e.target.value, \"url\")}\r\n />\r\n \r\n
\r\n \r\n \r\n \r\n \r\n props.onCommonPoint(\r\n e.target.value,\r\n \"description\",\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateCategoryComponent;\r\n","import { useState } from \"react\";\r\nimport { cloneDeep, get, set } from \"lodash\";\r\nimport { ICateCommom, ICategory } from \"../../category.model\";\r\nimport { Tabs } from \"antd\";\r\nimport type { TabsProps } from \"antd\";\r\n\r\nimport \"react-quill/dist/quill.snow.css\";\r\n// import \"../../quill.scss\";\r\nimport { ILanguage } from \"../../../language/language.model\";\r\nimport CategoryComponent from \"./categoryComponent\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport {\r\n createCategory,\r\n getCategory,\r\n updateCategory,\r\n} from \"../../services\";\r\nimport { formatDataObj } from \"../../../../utils\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { setLoadingAction } from \"../../../../app/commonSlice\";\r\n\r\nconst CategoryTabsComponent = (props: any) => {\r\n const history = useHistory();\r\n const { id }: any = useParams();\r\n const dispatch = useDispatch();\r\n const param = new URLSearchParams(props.location.search);\r\n const language = param.get(\"language\") || undefined;\r\n //#region declare\r\n const [cateDetail, setCateDetail] = useState({ title: \"\" });\r\n const [commonPoint, setCommonPoint] = useState({});\r\n const [languageDetail, setLanguageDetail] = useState([]);\r\n const [items, setItems] = useState([]);\r\n //#region useEffect\r\n const setPostListIndex = (value: string, path: string, lang: string, languageDetails: ICategory[], cateDetails: ICategory) => {\r\n const newCate = cloneDeep(cateDetails);\r\n \r\n if (newCate && lang === newCate.language) {\r\n set(newCate, path, value);\r\n setCateDetail(newCate);\r\n }\r\n const languageDetailNew: ICategory[] = cloneDeep(languageDetails);\r\n const index = languageDetailNew.map((m) => m.language).indexOf(lang);\r\n if (index > -1) {\r\n set(languageDetailNew, `[${index}].${path}`, value);\r\n setLanguageDetail(languageDetailNew);\r\n } else {\r\n const newCateLang = cloneDeep({ ...commonPoint, language: lang });\r\n newCateLang[path] = value;\r\n languageDetailNew.push(newCateLang);\r\n }\r\n setLanguageDetail(languageDetailNew);\r\n \r\n refreshItem(languageDetailNew, newCate);\r\n };\r\n\r\n const onCommonPoint = (value: any, path: string, cateDetails?: ICategory, languageDetails?: ICategory[]) => {\r\n const newCate: ICategory = cloneDeep(cateDetails) || { title: \"\" };\r\n set(newCate, path, value);\r\n setCateDetail(newCate);\r\n if(languageDetails) setLanguageDetail(languageDetails);\r\n refreshItem(languageDetails, newCate);\r\n };\r\n\r\n const onSubmit = async (languageDetails: ICategory[], cateDetails: ICategory) => {\r\n const languages = languageDetails.filter((f) => f.title);\r\n const update = {\r\n ...cateDetails,\r\n languages: languages.map((m) => ({\r\n ...m,\r\n parentId: cateDetail?.parentId,\r\n categoryId: cateDetail?.categoryId,\r\n id,\r\n })),\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (!id) {\r\n await createCategory(formatDataObj(update));\r\n } else {\r\n await updateCategory(id, update);\r\n }\r\n dispatch(setLoadingAction(false));\r\n history.goBack();\r\n };\r\n\r\n const refreshItem = (listLang?: ICategory[], cateDetail?: ICategory) => {\r\n if (cateDetail) setCateDetail(cateDetail);\r\n const languageLocal = localStorage.getItem(\"language\");\r\n const languages: ILanguage[] = languageLocal\r\n ? JSON.parse(languageLocal)\r\n : [];\r\n function compare(a: any, b: any) {\r\n if (a.isDefault > b.isDefault) {\r\n return -1;\r\n }\r\n if (a.isDefault < b.isDefault) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n setLanguageDetail(listLang || []);\r\n const items: TabsProps[\"items\"] = languages\r\n .sort((a, b) => compare(a, b))\r\n .map((lang, index) => {\r\n const langs = listLang?.find((s) => s.language === lang.code);\r\n if(!id && lang.isDefault && cateDetail) cateDetail['language'] = lang.code;\r\n const categoryInit: ICategory = langs\r\n ? { ...cateDetail, title: langs.title, language: lang.code, isDefault: lang.isDefault }\r\n : {\r\n ...cateDetail,\r\n language: lang.code,\r\n isDefault: lang.isDefault,\r\n title: \"\",\r\n };\r\n return {\r\n key: `${lang.code}`,\r\n label: lang.name,\r\n id: lang.code,\r\n children: (\r\n \r\n ),\r\n };\r\n });\r\n setItems(items);\r\n };\r\n\r\n useEffectOnce(() => {\r\n let postDetail;\r\n const detail = async () => {\r\n if (id) {\r\n const postResponse = await getCategory(id).catch((e) => null);\r\n postDetail = get(postResponse, \"data\");\r\n if (postDetail) {\r\n const cateC = postDetail as ICategory;\r\n setCateDetail(cateC);\r\n const languages: ICategory[] = cateC.languages || [];\r\n const checkLang = languages.find(\r\n (s) => s.language === cateC.language\r\n );\r\n if (!checkLang) {\r\n const coppyCate = cloneDeep(cateC);\r\n const listLang: ICategory[] = cloneDeep(coppyCate.languages) || [];\r\n delete coppyCate.languages;\r\n listLang.push(coppyCate);\r\n setLanguageDetail(listLang);\r\n refreshItem(listLang, cateC);\r\n } else {\r\n setLanguageDetail(languages);\r\n refreshItem(languages, cateC);\r\n }\r\n }\r\n } else {\r\n refreshItem([], { title: '' });\r\n }\r\n };\r\n detail();\r\n });\r\n\r\n const TabComp = async (language: any) => {\r\n\r\n setCateDetail(cateDetail);\r\n setCommonPoint(commonPoint);\r\n if (id) {\r\n // const postResponse = await getCategory(id, language).catch((e) => null);\r\n // postDetail = get(postResponse, \"data\");\r\n\r\n refreshItem(languageDetail, cateDetail);\r\n } else {\r\n // setPostList([...postList]);\r\n // refreshItem([...postList]);\r\n }\r\n // return <>;\r\n };\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CategoryTabsComponent;\r\n","import { IPostStatisticalResponse, ISearchPostStatistical, PostInterface } from \"./../../../models/post\";\r\nimport { IDataResponse, ISearchParam } from \"../../../models\";\r\nimport configServices from \"../../../utils/configServices\";\r\n\r\nexport const createPost = async (post: PostInterface) => {\r\n const result = await configServices.postService(\"post\", {\r\n ...post,\r\n });\r\n return result;\r\n};\r\n\r\nexport const createPostList = async (post: { data: PostInterface[] }) => {\r\n const result = await configServices.postService(\"post/list\", {\r\n ...post,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deletePost = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `post/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updatePost = async (id: number, param: any) => {\r\n \r\n const result = await configServices.patchService(\r\n `post/${id}`,\r\n { ...param }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getPost = async (id: number, language?: string) => {\r\n const result = await configServices.getService(\r\n `post/${id}`,\r\n { language },\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getPostLanguage = async (id: number) => {\r\n return await configServices.getService(\r\n `post/language/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n};\r\n\r\nexport const getPosts = async (filter?: any) => {\r\n const result = await configServices.getService(\r\n `post`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getPostStatistical = async (filter?: ISearchPostStatistical) => {\r\n const result = await configServices.getService(\r\n `post/statistical`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { ISearchPost, PostInterface } from \"./../../models/post\";\r\nimport { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { IPostState } from \"./propState\";\r\nimport {\r\n createPost,\r\n deletePost,\r\n updatePost,\r\n getPosts,\r\n getPost,\r\n} from \"./services\";\r\nimport { defaultFilter } from \"../../utils\";\r\nimport { ISearchCategory } from \"../category/category.model\";\r\n\r\nconst initialState: IPostState = {\r\n data: [],\r\n currentPage: 1,\r\n count: 0,\r\n detail: {\r\n isPublish: false,\r\n contentHtml: \"\",\r\n icon: \"\",\r\n id: 1,\r\n name: \"\",\r\n title: \"\",\r\n content: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getPostsAction = createAsyncThunk(\r\n \"post\",\r\n async (filter: ISearchPost, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPosts(defaultFilter(filter));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n thunkAPI.dispatch(setPostCountAction(response?.count || 0));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getPostDetail = createAsyncThunk(\r\n \"postDetail\",\r\n async ({ id }: { id: any }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPost(id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createPostAction = createAsyncThunk(\r\n \"post/createPostAction\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const post = {\r\n ...payload.post,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createPost(post);\r\n } else {\r\n await updatePost(payload.id, post);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getPostsAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deletePostAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deletePost(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getPostsAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const postSlice = createSlice({\r\n name: \"post\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: IPostState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload post :>> \", action);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setPostCountAction: (state: IPostState, action: PayloadAction) => {\r\n state.count = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: IPostState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.detail = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setStatusModalAction: (\r\n state: IPostState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: PostInterface | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n setPostAction,\r\n setStatusModalAction,\r\n setDetailAction,\r\n setPostCountAction,\r\n} = postSlice.actions;\r\n\r\nexport default postSlice.reducer;\r\n","import { Select } from \"antd\";\r\nimport _, { debounce, get } from \"lodash\";\r\nimport { useMemo, useState } from \"react\";\r\nimport { useAsyncFn, useEffectOnce } from \"react-use\";\r\nimport { categoryTreeOption } from \"../../utils\";\r\n\r\nimport {\r\n getCategoriesTree,\r\n getCategory,\r\n} from \"../../screens/category/services\";\r\nimport {\r\n ILanguage,\r\n ISearchLanguage,\r\n} from \"../../screens/language/language.model\";\r\nimport { getLanguages } from \"../../screens/language/services\";\r\n\r\nconst LanguageComponent = ({\r\n notCode,\r\n codeDefault,\r\n onSelect,\r\n onClear,\r\n}: {\r\n notCode?: string;\r\n codeDefault?: string;\r\n onSelect?: (code: string) => void;\r\n onClear?: () => void;\r\n}) => {\r\n // start category\r\n\r\n\r\n const [languageState, languageStateFn] = useAsyncFn(\r\n async (params: ISearchLanguage) => {\r\n return getLanguages(params);\r\n }\r\n );\r\n\r\n\r\n const SelectOptions = () => {\r\n const list: ILanguage[] = get(languageState, \"value.data\", []);\r\n let option = list\r\n ? list.map((m) => ({\r\n label: m.name,\r\n value: m.code,\r\n }))\r\n : [];\r\n if(notCode) option = option.filter(f => f.value !== notCode);\r\n return option;\r\n };\r\n\r\n //#end category\r\n\r\n useEffectOnce(() => {\r\n languageStateFn({});\r\n });\r\n return (\r\n <>\r\n debounceLoadCategory({ name })}\r\n filterOption={(search, item) =>\r\n String(item?.label).toLowerCase().indexOf(search.toLowerCase()) >= 0\r\n }\r\n options={SelectOptions()}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default LanguageComponent;\r\n","import { DownOutlined, RightOutlined } from \"@ant-design/icons\";\r\nimport {\r\n Button,\r\n Card,\r\n Col,\r\n DatePicker,\r\n Input,\r\n Row,\r\n Select,\r\n TreeSelect,\r\n} from \"antd\";\r\nimport _, { debounce, get, set } from \"lodash\";\r\nimport moment from \"moment\";\r\nimport { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getPostsAction, setStatusModalAction } from \"../slice\";\r\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { useAsyncFn, useEffectOnce } from \"react-use\";\r\nimport { ICategory, ISearchCategory } from \"../../category/category.model\";\r\nimport { ISearchPost } from \"../../../models/post\";\r\nimport { categoryTreeOption } from \"../../../utils\";\r\nimport CategorySelectTreeComponent from \"../../../Layout/CategorySelectTree\";\r\nimport LanguageComponent from \"../../../Layout/languageComponent\";\r\nimport { SORT_ENUM } from \"../../../utils/enum\";\r\n// import { ExportToExcel } from '../../../app/components/exportExcel';\r\n// import { useAppSelector } from '../../../app/hooks';\r\n// import { searchCourse } from '../../../services/course';\r\n// import { getCoursesAction, setSearchParamAction, setStatusModalAction } from '../slice';\r\n// import { columnTable } from '../validation';\r\nconst { Option } = Select;\r\n\r\nconst SearchComponent = (props: any) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const parmams = new URLSearchParams(props.location.search);\r\n const langDefault = parmams.get(\"language\") || undefined;\r\n const getQuery = () => {\r\n const param = new URLSearchParams(props.location.search);\r\n const name = param.get(\"name\") || \"\";\r\n const title = param.get(\"title\") || \"\";\r\n const category = param.get(\"category\") || \"\";\r\n const content = param.get(\"content\") || \"\";\r\n const language = param.get(\"language\") || \"\";\r\n const query: any = {};\r\n if (name) query.name = name;\r\n if (title) query.title = title;\r\n if (category) query.category = category;\r\n if (content) query.content = content;\r\n if (language) query.language = language;\r\n return query;\r\n };\r\n\r\n const defaultState: ISearchPost = {\r\n ...getQuery(),\r\n page: 1,\r\n };\r\n //#region declare\r\n const dispatch = useDispatch();\r\n // const { searchParam } = useAppSelector((state) => state.screens.course);\r\n // const category = useAppSelector((state) => state.screens.category);\r\n const [state, setState] = useState({\r\n ...defaultState,\r\n });\r\n\r\n const [postState, postStateFn] = useAsyncFn(async (params: ISearchPost) => {\r\n return dispatch(getPostsAction(params) as any);\r\n });\r\n\r\n const debounceLoadPost = useMemo(\r\n () =>\r\n debounce((query: ISearchPost) => {\r\n return postStateFn(query);\r\n }, 500),\r\n [postStateFn]\r\n );\r\n\r\n const onSelectedCategory = (category: string) => {\r\n const newState = { ...state, category: category };\r\n const query: any = getQuery();\r\n query[\"category\"] = category;\r\n const params = new URLSearchParams(query);\r\n history.replace({ pathname: location.pathname, search: params.toString() });\r\n setState(newState);\r\n dispatch(getPostsAction(newState) as any);\r\n };\r\n\r\n const onSelectedLanguage = (language: string) => {\r\n const query: any = getQuery();\r\n query[\"language\"] = language;\r\n const params = new URLSearchParams(query);\r\n history.replace({ pathname: location.pathname, search: params.toString() });\r\n const newState = { ...state, language };\r\n setState(newState);\r\n dispatch(getPostsAction(newState) as any);\r\n };\r\n\r\n const onCleanLanguage = () => {\r\n const newState = { ...state, language: undefined };\r\n const query: any = getQuery();\r\n delete query[\"language\"];\r\n const params = new URLSearchParams(query);\r\n history.replace({ pathname: location.pathname, search: params.toString() });\r\n setState(newState);\r\n dispatch(getPostsAction(newState) as any);\r\n };\r\n\r\n const onClearCategory = () => {\r\n const newState = { ...state, category: undefined };\r\n const query: any = getQuery();\r\n delete query[\"category\"];\r\n const params = new URLSearchParams(query);\r\n history.replace({ pathname: location.pathname, search: params.toString() });\r\n setState(newState);\r\n dispatch(getPostsAction(newState) as any);\r\n };\r\n\r\n //#end category\r\n\r\n const onChangeState = (value: string, path: string) => {\r\n const query: any = getQuery();\r\n if (value) query[path] = value;\r\n else delete query[path];\r\n const params = new URLSearchParams(query);\r\n history.replace({ pathname: location.pathname, search: params.toString() });\r\n const newState: any = { ...state };\r\n newState[path] = value;\r\n setState({ ...newState });\r\n return debounceLoadPost(newState);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getPostsAction } from \"./slice\";\r\nimport \"./styles.scss\";\r\nimport { Dropdown, Menu, Modal, Table, Image, Row, Button, Card } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport Search from \"../../Layout/search\";\r\nimport { PostInterface } from \"../../models/post\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n CheckOutlined,\r\n CloseOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { deletePostAction } from \"./slice\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\nimport { get } from \"lodash\";\r\nimport { formatDate, isCheckPermisson, showToast } from \"../../utils\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { ILanguage } from \"../language/language.model\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { updatePost } from \"./services\";\r\nimport { getCategories } from \"../category/services\";\r\nimport { ICategory } from \"../category/category.model\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { getLanguagesAction } from \"../language/slice\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nfunction PostPage(props: any) {\r\n const location = useLocation();\r\n const getQuery = () => {\r\n const param = new URLSearchParams(props.location.search);\r\n const name = param.get(\"name\") || \"\";\r\n const title = param.get(\"title\") || \"\";\r\n const category = param.get(\"category\") || \"\";\r\n const content = param.get(\"content\") || \"\";\r\n const language = param.get(\"language\") || \"\";\r\n\r\n const query: any = {};\r\n if (name) query.name = name;\r\n if (title) query.title = title;\r\n if (category) query.category = category;\r\n if (content) query.content = content;\r\n if (language) query.language = language;\r\n return query;\r\n };\r\n\r\n let history = useHistory();\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n count: 0,\r\n currentPage: 1,\r\n });\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isPostList = isCheckPermisson(permissionObj, PERMISSION_ENUM.POST_LIST);\r\n const isPostCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.POST_CREATE\r\n );\r\n const isPostUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.POST_UPDATE\r\n );\r\n const isPostDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.POST_DELETE\r\n );\r\n const isPostPublish = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.POST_ISPUBLISH\r\n );\r\n\r\n const [listIdDelete, setListIdDelete] = useState([]);\r\n\r\n const onPublish = async (id: number, isPublish: boolean) => {\r\n await updatePost(id, { isPublish }).then((r) => {\r\n const title = isPublish\r\n ? \"Xuất bản thành công\"\r\n : \"Ngừng xuất bản thành công\";\r\n showToast(title, \"success\");\r\n dispatch(getPostsAction({ ...getQuery() }) as any);\r\n });\r\n };\r\n\r\n const header: any = [\r\n {\r\n title: \"ID\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Tiêu đề bài viết\",\r\n key: \"title\",\r\n width: \"15%\",\r\n // dataIndex: \"title\",\r\n align: \"center\",\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return (\r\n

\r\n {record.title && record.title.length <= 150\r\n ? record.title\r\n : record.title?.slice(0, 150) + \"...\"}\r\n

\r\n );\r\n },\r\n },\r\n {\r\n title: \"Ảnh bìa\",\r\n key: \"icon\",\r\n align: \"center\",\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n key: \"Content\",\r\n dataIndex: \"content\",\r\n width: \"20%\",\r\n height: 150,\r\n title: \"Nội dung\",\r\n isCanSort: true,\r\n align: \"center\",\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return (\r\n

\r\n {record.content && record.content.length >= 150\r\n ? record.content?.slice(0, 150) + \"...\"\r\n : record.content}\r\n

\r\n );\r\n },\r\n },\r\n {\r\n title: \"Xuất bản\",\r\n key: \"ispublish\",\r\n align: \"center\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return (\r\n <>\r\n {record.isPublish ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n title: \"Ngôn ngữ\",\r\n key: \"language\",\r\n align: \"center\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n const languageLocal = localStorage.getItem(\"language\");\r\n const languages: ILanguage[] = languageLocal\r\n ? JSON.parse(languageLocal)\r\n : [];\r\n const lang = languages.find((f) => f.code === record.language);\r\n return

{lang && lang.name}

;\r\n },\r\n },\r\n {\r\n title: \"Tạo bởi\",\r\n key: \"createdBy\",\r\n align: \"center\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return

{get(record, \"createdBy.username\")}

;\r\n },\r\n },\r\n {\r\n key: \"updatedBy\",\r\n title: \"Cập nhật bởi\",\r\n align: \"center\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return

{get(record, \"updatedBy.username\")}

;\r\n },\r\n },\r\n {\r\n key: \"updatedAt\",\r\n title: \"Ngày Cập nhật\",\r\n align: \"center\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return

{formatDate(record.createdAt)}

;\r\n },\r\n },\r\n {\r\n title: \"Sắp xếp\",\r\n key: \"indexSort\",\r\n align: \"center\",\r\n isCanSort: true,\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: PostInterface, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const postData = useAppSelector((state) => state.screens.post);\r\n const languageData = useAppSelector((state) => state.screens.language.data);\r\n const menu = (item: PostInterface, index: number) => {\r\n return (\r\n \r\n {isPostUpdate && (\r\n }\r\n >\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isPostPublish && item.isPublish ? (\r\n }\r\n onClick={() => onPublish(item.id, !item.isPublish)}\r\n >\r\n Ngừng xuất bản\r\n \r\n ) : isPostPublish && !item.isPublish ? (\r\n }\r\n onClick={() => onPublish(item.id, !item.isPublish)}\r\n >\r\n Xuất bản\r\n \r\n ) : null}\r\n {isPostDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n const refesh = async () => {\r\n dispatch(setLoadingAction(true));\r\n let categoryId;\r\n const query: any = getQuery();\r\n if (!languageData.length) await dispatch(getLanguagesAction({}) as any);\r\n const languages: ILanguage[] = languageData || [];\r\n\r\n const language = query.language || languages[0]?.code || \"\";\r\n if (language) {\r\n query.language = language;\r\n }\r\n\r\n if (location.pathname === \"/product\") {\r\n const result = await getCategories({ slug: \"/product\" });\r\n const category: ICategory[] = get(result, \"data\", []);\r\n const categoryIds = category.map((m) => m.id);\r\n if (categoryIds.length) {\r\n query[\"category\"] = categoryIds[0];\r\n categoryId = categoryIds[0];\r\n }\r\n }\r\n const params = new URLSearchParams(query);\r\n history.replace({\r\n pathname: location.pathname,\r\n search: params.toString(),\r\n });\r\n dispatch(getPostsAction({ category: categoryId, ...query }) as any);\r\n };\r\n useEffectOnce(() => {\r\n isPostList && refesh();\r\n // dispatch(getPostsAction({ ...getQuery() }) as any);\r\n });\r\n\r\n useEffect(() => {\r\n if (postData.data) {\r\n setState(postData);\r\n }\r\n }, [postData]);\r\n\r\n const _confirmDelete = (item: PostInterface) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa bài viết?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deletePostAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _confirmDeleteList = () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa ${listIdDelete.length} bài viết?`,\r\n icon: ,\r\n // content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk: async () => {\r\n for (const id of listIdDelete) {\r\n await dispatch(deletePostAction({ id }) as any);\r\n }\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n dispatch(getPostsAction({ ...getQuery(), page }) as any);\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n const rowSelection = {\r\n onChange: (selectedRowKeys: React.Key[]) => {\r\n setListIdDelete(selectedRowKeys);\r\n // setIsDelete(selectedRowKeys.length > 0);\r\n },\r\n };\r\n return (\r\n <>\r\n \r\n

{props.title || \"Bài viết\"}

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n <>\r\n {listIdDelete.length > 0 && (\r\n _confirmDeleteList()}\r\n >\r\n {\" \"}\r\n Xóa\r\n \r\n )}\r\n {isPostCreate && (\r\n \r\n )}\r\n \r\n }\r\n >\r\n {isPostList && (\r\n \r\n \r\n \r\n )}\r\n {isPostList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PostPage;\r\n","\r\nimport configServices from \"../../../utils/configServices\";\r\nimport { PostHistoryInterface } from \"../postHistory.model\";\r\n\r\nexport const createPost = async (post: PostHistoryInterface) => {\r\n const result = await configServices.postService(\"post-history\", {\r\n ...post,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deletePost = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `post-history/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updatePost = async (id: number, param: any) => {\r\n const result = await configServices.patchService(\r\n `post-history/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getPost = async (id: number) => {\r\n const result = await configServices.getService(\r\n `post-history/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getPosts = async (filter?: any) => {\r\n const result = await configServices.getService(\r\n `post-history`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\n// import { RootState } from \"../../app/store\";\r\nimport { IPostHistoryState } from \"./propState\";\r\nimport {\r\n createPost,\r\n deletePost,\r\n updatePost,\r\n getPosts,\r\n getPost,\r\n} from \"./services\";\r\nimport { defaultFilter } from \"../../utils\";\r\nimport { ISearchPostHistory, PostHistoryInterface } from \"./postHistory.model\";\r\n\r\nconst initialState: IPostHistoryState = {\r\n data: [],\r\n currentPage: 1,\r\n count: 0,\r\n detail: {\r\n contentHtml: \"\",\r\n icon: \"\",\r\n id: 1,\r\n name: \"\",\r\n title: \"\",\r\n content: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getPostsAction = createAsyncThunk(\r\n \"post\",\r\n async (filter: ISearchPostHistory, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPosts(defaultFilter(filter));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n thunkAPI.dispatch(setPostCountAction(response?.count || 0));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getPostDetail = createAsyncThunk(\r\n \"postDetail\",\r\n async ({ id }: { id: any }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPost(id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createPostAction = createAsyncThunk(\r\n \"post/createPostAction\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const post = {\r\n ...payload.post,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createPost(post);\r\n } else {\r\n await updatePost(payload.id, post);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getPostsAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deletePostAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deletePost(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getPostsAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const postSlice = createSlice({\r\n name: \"post\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: IPostHistoryState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload post :>> \", action);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setPostCountAction: (state: IPostHistoryState, action: PayloadAction) => {\r\n state.count = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: IPostHistoryState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.detail = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setStatusModalAction: (\r\n state: IPostHistoryState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: PostHistoryInterface | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n setPostAction,\r\n setStatusModalAction,\r\n setDetailAction,\r\n setPostCountAction,\r\n} = postSlice.actions;\r\n\r\nexport default postSlice.reducer;\r\n","import { Card, Col, Input, Row } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getPostsAction } from \"../slice\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { ISearchPostHistory } from \"../postHistory.model\";\r\n\r\nconst defaultState: ISearchPostHistory = {\r\n category: undefined,\r\n content: undefined,\r\n languages: undefined,\r\n name: undefined,\r\n title: undefined,\r\n order: undefined,\r\n page: 1,\r\n sort: undefined,\r\n};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n // const { searchParam } = useAppSelector((state) => state.screens.course);\r\n // const category = useAppSelector((state) => state.screens.category);\r\n const [state, setState] = useState(\r\n _.cloneDeep(defaultState)\r\n );\r\n\r\n const postState = useAsyncFn(async (params: ISearchPostHistory) => {\r\n return dispatch(getPostsAction(params) as any);\r\n });\r\n\r\n const debounceLoadPost = useMemo(\r\n () =>\r\n debounce((query: ISearchPostHistory) => {\r\n return postState[1](query);\r\n }, 500),\r\n [postState]\r\n );\r\n\r\n //#end category\r\n\r\n const onChangeState = (query: ISearchPostHistory) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadPost(query);\r\n };\r\n //#endregion declare\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getPostsAction } from \"./slice\";\r\nimport \"./styles.scss\";\r\nimport { Table, Image } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\n\r\n// import {\r\n// EditOutlined,\r\n// DeleteOutlined,\r\n// ExclamationCircleOutlined,\r\n// } from \"@ant-design/icons\";\r\n// import {deletePostAction } from \"./slice\";\r\n// import { Link } from \"react-router-dom\";\r\nimport { get } from \"lodash\";\r\nimport { PostHistoryInterface } from \"./postHistory.model\";\r\nimport { formatDate } from \"../../utils\";\r\n\r\n// const { confirm } = Modal;\r\n\r\nfunction PostHistoryPage({ postId }: { postId?: string }) {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n count: 0,\r\n currentPage: 1,\r\n });\r\n const header: any = [\r\n {\r\n title: \"Id\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"left\",\r\n },\r\n {\r\n title: \"Tên bài viết\",\r\n key: \"name\",\r\n dataIndex: \"name\",\r\n align: \"left\",\r\n },\r\n {\r\n title: \"Tiêu đề bài viết\",\r\n key: \"title\",\r\n dataIndex: \"title\",\r\n align: \"left\",\r\n },\r\n {\r\n title: \"Ảnh bìa\",\r\n key: \"icon\",\r\n align: \"center\",\r\n render: (_text: string, record: PostHistoryInterface, index: number) => {\r\n return ;\r\n },\r\n },\r\n {\r\n key: \"Content\",\r\n dataIndex: \"content\",\r\n title: \"Nội dung\",\r\n isCanSort: true,\r\n },\r\n {\r\n title: \"Tạo bởi\",\r\n key: \"createdBy\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostHistoryInterface, index: number) => {\r\n return (\r\n

\r\n {\" \"}\r\n {get(record, \"createdBy.firstName\")}{\" \"}\r\n {get(record, \"createdBy.lastName\")}{\" \"}\r\n

\r\n );\r\n },\r\n },\r\n {\r\n key: \"updatedBy\",\r\n title: \"Cập nhật bởi\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostHistoryInterface, index: number) => {\r\n return (\r\n

\r\n {\" \"}\r\n {get(record, \"updatedBy.firstName\")}{\" \"}\r\n {get(record, \"updatedBy.lastName\")}{\" \"}\r\n

\r\n );\r\n },\r\n },\r\n {\r\n key: \"updatedAt\",\r\n title: \"Ngày Cập nhật\",\r\n isCanSort: true,\r\n render: (_text: string, record: PostHistoryInterface, index: number) => {\r\n return

{formatDate(record.updatedAt)}

;\r\n },\r\n },\r\n // {\r\n // title: \"\",\r\n // key: \"action\",\r\n // align: \"right\" as \"right\",\r\n // render: (_text: string, record: PostHistoryInterface, index: number) => {\r\n // return (\r\n // \r\n // \r\n // \r\n // );\r\n // },\r\n // },\r\n ];\r\n const postData = useAppSelector((state) => state.screens.postHistory);\r\n useEffect(() => {\r\n dispatch(getPostsAction({ postId }) as any);\r\n }, [dispatch, postId]);\r\n\r\n useEffect(() => {\r\n if (postData.data) {\r\n setState(postData);\r\n }\r\n }, [postData]);\r\n\r\n // const _confirmDelete = (item: PostHistoryInterface) => () => {\r\n // confirm({\r\n // title: `Bạn có chắc chắn muốn xóa bài viết?`,\r\n // icon: ,\r\n // content: item.name,\r\n // okText: \"Đồng ý\",\r\n // cancelText: \"Hủy\",\r\n // onOk() {\r\n // const id = item.id ? item.id : 0;\r\n // dispatch(deletePostAction({ id }) as any);\r\n // },\r\n // });\r\n // };\r\n\r\n const _onChangePage = async (page: number) => {\r\n dispatch(getPostsAction({ page }) as any);\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {/* */}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PostHistoryPage;\r\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as PropTypes from 'prop-types';\nexport var eventPropTypes = {\n onActivate: PropTypes.func,\n onAddUndo: PropTypes.func,\n onBeforeAddUndo: PropTypes.func,\n onBeforeExecCommand: PropTypes.func,\n onBeforeGetContent: PropTypes.func,\n onBeforeRenderUI: PropTypes.func,\n onBeforeSetContent: PropTypes.func,\n onBeforePaste: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClearUndos: PropTypes.func,\n onClick: PropTypes.func,\n onContextMenu: PropTypes.func,\n onCommentChange: PropTypes.func,\n onCopy: PropTypes.func,\n onCut: PropTypes.func,\n onDblclick: PropTypes.func,\n onDeactivate: PropTypes.func,\n onDirty: PropTypes.func,\n onDrag: PropTypes.func,\n onDragDrop: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDragGesture: PropTypes.func,\n onDragOver: PropTypes.func,\n onDrop: PropTypes.func,\n onExecCommand: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusIn: PropTypes.func,\n onFocusOut: PropTypes.func,\n onGetContent: PropTypes.func,\n onHide: PropTypes.func,\n onInit: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onLoadContent: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseUp: PropTypes.func,\n onNodeChange: PropTypes.func,\n onObjectResizeStart: PropTypes.func,\n onObjectResized: PropTypes.func,\n onObjectSelected: PropTypes.func,\n onPaste: PropTypes.func,\n onPostProcess: PropTypes.func,\n onPostRender: PropTypes.func,\n onPreProcess: PropTypes.func,\n onProgressState: PropTypes.func,\n onRedo: PropTypes.func,\n onRemove: PropTypes.func,\n onReset: PropTypes.func,\n onSaveContent: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSetAttrib: PropTypes.func,\n onSetContent: PropTypes.func,\n onShow: PropTypes.func,\n onSubmit: PropTypes.func,\n onUndo: PropTypes.func,\n onVisualAid: PropTypes.func,\n onSkinLoadError: PropTypes.func,\n onThemeLoadError: PropTypes.func,\n onModelLoadError: PropTypes.func,\n onPluginLoadError: PropTypes.func,\n onIconsLoadError: PropTypes.func,\n onLanguageLoadError: PropTypes.func,\n onScriptsLoad: PropTypes.func,\n onScriptsLoadError: PropTypes.func,\n};\nexport var EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.shape({\n src: PropTypes.string,\n async: PropTypes.bool,\n defer: PropTypes.bool\n }))\n ]), rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({\n async: PropTypes.bool,\n defer: PropTypes.bool,\n delay: PropTypes.number\n }) }, eventPropTypes);\n","import { eventPropTypes } from './components/EditorPropTypes';\nexport var isFunction = function (x) { return typeof x === 'function'; };\nvar isEventProp = function (name) { return name in eventPropTypes; };\nvar eventAttrToEventName = function (attrName) { return attrName.substr(2); };\nexport var configHandlers2 = function (handlerLookup, on, off, adapter, prevProps, props, boundHandlers) {\n var prevEventKeys = Object.keys(prevProps).filter(isEventProp);\n var currEventKeys = Object.keys(props).filter(isEventProp);\n var removedKeys = prevEventKeys.filter(function (key) { return props[key] === undefined; });\n var addedKeys = currEventKeys.filter(function (key) { return prevProps[key] === undefined; });\n removedKeys.forEach(function (key) {\n // remove event handler\n var eventName = eventAttrToEventName(key);\n var wrappedHandler = boundHandlers[eventName];\n off(eventName, wrappedHandler);\n delete boundHandlers[eventName];\n });\n addedKeys.forEach(function (key) {\n var wrappedHandler = adapter(handlerLookup, key);\n var eventName = eventAttrToEventName(key);\n boundHandlers[eventName] = wrappedHandler;\n on(eventName, wrappedHandler);\n });\n};\nexport var configHandlers = function (editor, prevProps, props, boundHandlers, lookup) {\n return configHandlers2(lookup, editor.on.bind(editor), editor.off.bind(editor), \n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n function (handlerLookup, key) { return function (e) { var _a; return (_a = handlerLookup(key)) === null || _a === void 0 ? void 0 : _a(e, editor); }; }, prevProps, props, boundHandlers);\n};\nvar unique = 0;\nexport var uuid = function (prefix) {\n var time = Date.now();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n};\nexport var isTextareaOrInput = function (element) {\n return element !== null && (element.tagName.toLowerCase() === 'textarea' || element.tagName.toLowerCase() === 'input');\n};\nvar normalizePluginArray = function (plugins) {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n// eslint-disable-next-line max-len\nexport var mergePlugins = function (initPlugins, inputPlugins) { return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins)); };\nexport var isBeforeInputEventAvailable = function () { return window.InputEvent && typeof InputEvent.prototype.getTargetRanges === 'function'; };\nexport var isInDoc = function (elem) {\n if (!('isConnected' in Node.prototype)) {\n // Fallback for IE and old Edge\n var current = elem;\n var parent_1 = elem.parentNode;\n while (parent_1 != null) {\n current = parent_1;\n parent_1 = current.parentNode;\n }\n return current === elem.ownerDocument;\n }\n return elem.isConnected;\n};\nexport var setMode = function (editor, mode) {\n if (editor !== undefined) {\n if (editor.mode != null && typeof editor.mode === 'object' && typeof editor.mode.set === 'function') {\n editor.mode.set(mode);\n }\n else { // support TinyMCE 4\n editor.setMode(mode);\n }\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { uuid } from './Utils';\nvar injectScriptTag = function (doc, item, handler) {\n var _a, _b;\n var scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = item.id;\n scriptTag.src = item.src;\n scriptTag.async = (_a = item.async) !== null && _a !== void 0 ? _a : false;\n scriptTag.defer = (_b = item.defer) !== null && _b !== void 0 ? _b : false;\n var loadHandler = function () {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src);\n };\n var errorHandler = function (err) {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src, err);\n };\n scriptTag.addEventListener('load', loadHandler);\n scriptTag.addEventListener('error', errorHandler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n};\nvar createDocumentScriptLoader = function (doc) {\n var lookup = {};\n var scriptLoadOrErrorHandler = function (src, err) {\n var item = lookup[src];\n item.done = true;\n item.error = err;\n for (var _i = 0, _a = item.handlers; _i < _a.length; _i++) {\n var h = _a[_i];\n h(src, err);\n }\n item.handlers = [];\n };\n var loadScripts = function (items, success, failure) {\n // eslint-disable-next-line no-console\n var failureOrLog = function (err) { return failure !== undefined ? failure(err) : console.error(err); };\n if (items.length === 0) {\n failureOrLog(new Error('At least one script must be provided'));\n return;\n }\n var successCount = 0;\n var failed = false;\n var loaded = function (_src, err) {\n if (failed) {\n return;\n }\n if (err) {\n failed = true;\n failureOrLog(err);\n }\n else if (++successCount === items.length) {\n success();\n }\n };\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n var existing = lookup[item.src];\n if (existing) {\n if (existing.done) {\n loaded(item.src, existing.error);\n }\n else {\n existing.handlers.push(loaded);\n }\n }\n else {\n // create a new entry\n var id = uuid('tiny-');\n lookup[item.src] = {\n id: id,\n src: item.src,\n done: false,\n error: null,\n handlers: [loaded],\n };\n injectScriptTag(doc, __assign({ id: id }, item), scriptLoadOrErrorHandler);\n }\n }\n };\n var deleteScripts = function () {\n var _a;\n for (var _i = 0, _b = Object.values(lookup); _i < _b.length; _i++) {\n var item = _b[_i];\n var scriptTag = doc.getElementById(item.id);\n if (scriptTag != null && scriptTag.tagName === 'SCRIPT') {\n (_a = scriptTag.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(scriptTag);\n }\n }\n lookup = {};\n };\n var getDocument = function () { return doc; };\n return {\n loadScripts: loadScripts,\n deleteScripts: deleteScripts,\n getDocument: getDocument\n };\n};\nvar createScriptLoader = function () {\n var cache = [];\n var getDocumentScriptLoader = function (doc) {\n var loader = cache.find(function (l) { return l.getDocument() === doc; });\n if (loader === undefined) {\n loader = createDocumentScriptLoader(doc);\n cache.push(loader);\n }\n return loader;\n };\n var loadList = function (doc, items, delay, success, failure) {\n var doLoad = function () { return getDocumentScriptLoader(doc).loadScripts(items, success, failure); };\n if (delay > 0) {\n setTimeout(doLoad, delay);\n }\n else {\n doLoad();\n }\n };\n var reinitialize = function () {\n for (var loader = cache.pop(); loader != null; loader = cache.pop()) {\n loader.deleteScripts();\n }\n };\n return {\n loadList: loadList,\n reinitialize: reinitialize\n };\n};\nexport var ScriptLoader = createScriptLoader();\n","var getTinymce = function (view) {\n var global = view;\n return global && global.tinymce ? global.tinymce : null;\n};\nexport { getTinymce };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ScriptLoader } from '../ScriptLoader2';\nimport { getTinymce } from '../TinyMCE';\nimport { isFunction, isTextareaOrInput, mergePlugins, uuid, configHandlers, isBeforeInputEventAvailable, isInDoc, setMode } from '../Utils';\nimport { EditorPropTypes } from './EditorPropTypes';\nvar Editor = /** @class */ (function (_super) {\n __extends(Editor, _super);\n function Editor(props) {\n var _this = this;\n var _a, _b, _c;\n _this = _super.call(this, props) || this;\n _this.rollbackTimer = undefined;\n _this.valueCursor = undefined;\n _this.rollbackChange = function () {\n var editor = _this.editor;\n var value = _this.props.value;\n if (editor && value && value !== _this.currentContent) {\n editor.undoManager.ignore(function () {\n editor.setContent(value);\n // only restore cursor on inline editors when they are focused\n // as otherwise it will cause a focus grab\n if (_this.valueCursor && (!_this.inline || editor.hasFocus())) {\n try {\n editor.selection.moveToBookmark(_this.valueCursor);\n }\n catch (e) { /* ignore */ }\n }\n });\n }\n _this.rollbackTimer = undefined;\n };\n _this.handleBeforeInput = function (_evt) {\n if (_this.props.value !== undefined && _this.props.value === _this.currentContent && _this.editor) {\n if (!_this.inline || _this.editor.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n _this.valueCursor = _this.editor.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n }\n };\n _this.handleBeforeInputSpecial = function (evt) {\n if (evt.key === 'Enter' || evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleBeforeInput(evt);\n }\n };\n _this.handleEditorChange = function (_evt) {\n var editor = _this.editor;\n if (editor && editor.initialized) {\n var newContent = editor.getContent();\n if (_this.props.value !== undefined && _this.props.value !== newContent && _this.props.rollback !== false) {\n // start a timer and revert to the value if not applied in time\n if (!_this.rollbackTimer) {\n _this.rollbackTimer = window.setTimeout(_this.rollbackChange, typeof _this.props.rollback === 'number' ? _this.props.rollback : 200);\n }\n }\n if (newContent !== _this.currentContent) {\n _this.currentContent = newContent;\n if (isFunction(_this.props.onEditorChange)) {\n _this.props.onEditorChange(newContent, editor);\n }\n }\n }\n };\n _this.handleEditorChangeSpecial = function (evt) {\n if (evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleEditorChange(evt);\n }\n };\n _this.initialise = function (attempts) {\n var _a, _b, _c;\n if (attempts === void 0) { attempts = 0; }\n var target = _this.elementRef.current;\n if (!target) {\n return; // Editor has been unmounted\n }\n if (!isInDoc(target)) {\n // this is probably someone trying to help by rendering us offscreen\n // but we can't do that because the editor iframe must be in the document\n // in order to have state\n if (attempts === 0) {\n // we probably just need to wait for the current events to be processed\n setTimeout(function () { return _this.initialise(1); }, 1);\n }\n else if (attempts < 100) {\n // wait for ten seconds, polling every tenth of a second\n setTimeout(function () { return _this.initialise(attempts + 1); }, 100);\n }\n else {\n // give up, at this point it seems that more polling is unlikely to help\n throw new Error('tinymce can only be initialised when in a document');\n }\n return;\n }\n var tinymce = getTinymce(_this.view);\n if (!tinymce) {\n throw new Error('tinymce should have been loaded into global scope');\n }\n var finalInit = __assign(__assign({}, _this.props.init), { selector: undefined, target: target, readonly: _this.props.disabled, inline: _this.inline, plugins: mergePlugins((_a = _this.props.init) === null || _a === void 0 ? void 0 : _a.plugins, _this.props.plugins), toolbar: (_b = _this.props.toolbar) !== null && _b !== void 0 ? _b : (_c = _this.props.init) === null || _c === void 0 ? void 0 : _c.toolbar, setup: function (editor) {\n _this.editor = editor;\n _this.bindHandlers({});\n // When running in inline mode the editor gets the initial value\n // from the innerHTML of the element it is initialized on.\n // However we don't want to take on the responsibility of sanitizing\n // to remove XSS in the react integration so we have a chicken and egg\n // problem... We avoid it by sneaking in a set content before the first\n // \"official\" setContent and using TinyMCE to do the sanitization.\n if (_this.inline && !isTextareaOrInput(target)) {\n editor.once('PostRender', function (_evt) {\n editor.setContent(_this.getInitialValue(), { no_events: true });\n });\n }\n if (_this.props.init && isFunction(_this.props.init.setup)) {\n _this.props.init.setup(editor);\n }\n }, init_instance_callback: function (editor) {\n var _a, _b;\n // check for changes that happened since tinymce.init() was called\n var initialValue = _this.getInitialValue();\n _this.currentContent = (_a = _this.currentContent) !== null && _a !== void 0 ? _a : editor.getContent();\n if (_this.currentContent !== initialValue) {\n _this.currentContent = initialValue;\n // same as resetContent in TinyMCE 5\n editor.setContent(initialValue);\n editor.undoManager.clear();\n editor.undoManager.add();\n editor.setDirty(false);\n }\n var disabled = (_b = _this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(_this.editor, disabled ? 'readonly' : 'design');\n // ensure existing init_instance_callback is called\n if (_this.props.init && isFunction(_this.props.init.init_instance_callback)) {\n _this.props.init.init_instance_callback(editor);\n }\n } });\n if (!_this.inline) {\n target.style.visibility = '';\n }\n if (isTextareaOrInput(target)) {\n target.value = _this.getInitialValue();\n }\n tinymce.init(finalInit);\n };\n _this.id = _this.props.id || uuid('tiny-react');\n _this.elementRef = React.createRef();\n _this.inline = (_c = (_a = _this.props.inline) !== null && _a !== void 0 ? _a : (_b = _this.props.init) === null || _b === void 0 ? void 0 : _b.inline) !== null && _c !== void 0 ? _c : false;\n _this.boundHandlers = {};\n return _this;\n }\n Object.defineProperty(Editor.prototype, \"view\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this.elementRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.defaultView) !== null && _b !== void 0 ? _b : window;\n },\n enumerable: false,\n configurable: true\n });\n Editor.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n var _a, _b;\n if (this.rollbackTimer) {\n clearTimeout(this.rollbackTimer);\n this.rollbackTimer = undefined;\n }\n if (this.editor) {\n this.bindHandlers(prevProps);\n if (this.editor.initialized) {\n this.currentContent = (_a = this.currentContent) !== null && _a !== void 0 ? _a : this.editor.getContent();\n if (typeof this.props.initialValue === 'string' && this.props.initialValue !== prevProps.initialValue) {\n // same as resetContent in TinyMCE 5\n this.editor.setContent(this.props.initialValue);\n this.editor.undoManager.clear();\n this.editor.undoManager.add();\n this.editor.setDirty(false);\n }\n else if (typeof this.props.value === 'string' && this.props.value !== this.currentContent) {\n var localEditor_1 = this.editor;\n localEditor_1.undoManager.transact(function () {\n // inline editors grab focus when restoring selection\n // so we don't try to keep their selection unless they are currently focused\n var cursor;\n if (!_this.inline || localEditor_1.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n cursor = localEditor_1.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n var valueCursor = _this.valueCursor;\n localEditor_1.setContent(_this.props.value);\n if (!_this.inline || localEditor_1.hasFocus()) {\n for (var _i = 0, _a = [cursor, valueCursor]; _i < _a.length; _i++) {\n var bookmark = _a[_i];\n if (bookmark) {\n try {\n localEditor_1.selection.moveToBookmark(bookmark);\n _this.valueCursor = bookmark;\n break;\n }\n catch (e) { /* ignore */ }\n }\n }\n }\n });\n }\n if (this.props.disabled !== prevProps.disabled) {\n var disabled = (_b = this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(this.editor, disabled ? 'readonly' : 'design');\n }\n }\n }\n };\n Editor.prototype.componentDidMount = function () {\n var _this = this;\n var _a, _b, _c, _d, _e;\n if (getTinymce(this.view) !== null) {\n this.initialise();\n }\n else if (Array.isArray(this.props.tinymceScriptSrc) && this.props.tinymceScriptSrc.length === 0) {\n (_b = (_a = this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, new Error('No `tinymce` global is present but the `tinymceScriptSrc` prop was an empty array.'));\n }\n else if ((_c = this.elementRef.current) === null || _c === void 0 ? void 0 : _c.ownerDocument) {\n var successHandler = function () {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoad) === null || _b === void 0 ? void 0 : _b.call(_a);\n _this.initialise();\n };\n var errorHandler = function (err) {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n ScriptLoader.loadList(this.elementRef.current.ownerDocument, this.getScriptSources(), (_e = (_d = this.props.scriptLoading) === null || _d === void 0 ? void 0 : _d.delay) !== null && _e !== void 0 ? _e : 0, successHandler, errorHandler);\n }\n };\n Editor.prototype.componentWillUnmount = function () {\n var _this = this;\n var editor = this.editor;\n if (editor) {\n editor.off(this.changeEvents(), this.handleEditorChange);\n editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n editor.off('keypress', this.handleEditorChangeSpecial);\n editor.off('keydown', this.handleBeforeInputSpecial);\n editor.off('NewBlock', this.handleEditorChange);\n Object.keys(this.boundHandlers).forEach(function (eventName) {\n editor.off(eventName, _this.boundHandlers[eventName]);\n });\n this.boundHandlers = {};\n editor.remove();\n this.editor = undefined;\n }\n };\n Editor.prototype.render = function () {\n return this.inline ? this.renderInline() : this.renderIframe();\n };\n Editor.prototype.changeEvents = function () {\n var _a, _b, _c;\n var isIE = (_c = (_b = (_a = getTinymce(this.view)) === null || _a === void 0 ? void 0 : _a.Env) === null || _b === void 0 ? void 0 : _b.browser) === null || _c === void 0 ? void 0 : _c.isIE();\n return (isIE\n ? 'change keyup compositionend setcontent CommentChange'\n : 'change input compositionend setcontent CommentChange');\n };\n Editor.prototype.beforeInputEvent = function () {\n return isBeforeInputEventAvailable() ? 'beforeinput SelectionChange' : 'SelectionChange';\n };\n Editor.prototype.renderInline = function () {\n var _a = this.props.tagName, tagName = _a === void 0 ? 'div' : _a;\n return React.createElement(tagName, {\n ref: this.elementRef,\n id: this.id\n });\n };\n Editor.prototype.renderIframe = function () {\n return React.createElement('textarea', {\n ref: this.elementRef,\n style: { visibility: 'hidden' },\n name: this.props.textareaName,\n id: this.id\n });\n };\n Editor.prototype.getScriptSources = function () {\n var _a, _b;\n var async = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async;\n var defer = (_b = this.props.scriptLoading) === null || _b === void 0 ? void 0 : _b.defer;\n if (this.props.tinymceScriptSrc !== undefined) {\n if (typeof this.props.tinymceScriptSrc === 'string') {\n return [{ src: this.props.tinymceScriptSrc, async: async, defer: defer }];\n }\n // multiple scripts can be specified which allows for hybrid mode\n return this.props.tinymceScriptSrc.map(function (item) {\n if (typeof item === 'string') {\n // async does not make sense for multiple items unless\n // they are not dependent (which will be unlikely)\n return { src: item, async: async, defer: defer };\n }\n else {\n return item;\n }\n });\n }\n // fallback to the cloud when the tinymceScriptSrc is not specified\n var channel = this.props.cloudChannel;\n var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';\n var cloudTinyJs = \"https://cdn.tiny.cloud/1/\".concat(apiKey, \"/tinymce/\").concat(channel, \"/tinymce.min.js\");\n return [{ src: cloudTinyJs, async: async, defer: defer }];\n };\n Editor.prototype.getInitialValue = function () {\n if (typeof this.props.initialValue === 'string') {\n return this.props.initialValue;\n }\n else if (typeof this.props.value === 'string') {\n return this.props.value;\n }\n else {\n return '';\n }\n };\n Editor.prototype.bindHandlers = function (prevProps) {\n var _this = this;\n if (this.editor !== undefined) {\n // typescript chokes trying to understand the type of the lookup function\n configHandlers(this.editor, prevProps, this.props, this.boundHandlers, function (key) { return _this.props[key]; });\n // check if we should monitor editor changes\n var isValueControlled = function (p) { return p.onEditorChange !== undefined || p.value !== undefined; };\n var wasControlled = isValueControlled(prevProps);\n var nowControlled = isValueControlled(this.props);\n if (!wasControlled && nowControlled) {\n this.editor.on(this.changeEvents(), this.handleEditorChange);\n this.editor.on(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.on('keydown', this.handleBeforeInputSpecial);\n this.editor.on('keyup', this.handleEditorChangeSpecial);\n this.editor.on('NewBlock', this.handleEditorChange);\n }\n else if (wasControlled && !nowControlled) {\n this.editor.off(this.changeEvents(), this.handleEditorChange);\n this.editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.off('keydown', this.handleBeforeInputSpecial);\n this.editor.off('keyup', this.handleEditorChangeSpecial);\n this.editor.off('NewBlock', this.handleEditorChange);\n }\n }\n };\n Editor.propTypes = EditorPropTypes;\n Editor.defaultProps = {\n cloudChannel: '6'\n };\n return Editor;\n}(React.Component));\nexport { Editor };\n","import React from \"react\";\r\nimport { Editor } from \"@tinymce/tinymce-react\";\r\nimport { get } from \"lodash\";\r\nimport { uploadFile } from \"../file/services\";\r\nimport { FileTypeEnum } from \"../../utils/enum\";\r\n\r\nfunction Tinymce(props: any) {\r\n const handleEditorChange = (e: any) => {\r\n props.onChangeHtml(e.target.getContent());\r\n };\r\n const handleChange = async ({\r\n file,\r\n callback,\r\n }: {\r\n file: File;\r\n callback: (link: string, { alt }: { alt: string }) => void;\r\n }) => {\r\n if (file) {\r\n const data = await uploadFile({\r\n file: get(file, \"[0]\"),\r\n name: get(file, \"[0].name\"),\r\n minType: get(file, \"[0].type\"),\r\n type: FileTypeEnum.POST,\r\n });\r\n const id = get(data, \"data.id\");\r\n if (id) {\r\n const link = `${process.env.REACT_APP_API_URL}file/detail/${id}`;\r\n callback(link, { alt: get(file, \"[0].name\") || \"\" });\r\n }\r\n }\r\n };\r\n const toolbar = `undo redo | formatselect | bold italic backcolor |\r\n alignleft aligncenter alignright alignjustify | bullist numlist outdent indent |\r\n removeformat | image |\r\n styleselect | fontsizeselect | sizeselect | fontselect\r\n `;\r\n return (\r\n
\r\n \r\n This is the initial content of the editor

\"\r\n plugins=\"advlist autolink lists link image charmap print preview anchor\r\n searchreplace visualblocks code fullscreen\r\n insertdatetime media table paste code help wordcount\"\r\n init={{\r\n selector: \"textarea\",\r\n toolbar,\r\n fontsize_formats:\r\n \"8pt 9pt 10pt 11pt 12pt 14pt 18pt 24pt 30pt 36pt 48pt 60pt 72pt 96pt\",\r\n font_formats:\r\n \"Andale Mono=andale mono,times; Arial=arial,helvetica,sans-serif; Arial Black=arial black,avant garde; Book Antiqua=book antiqua,palatino; Comic Sans MS=comic sans ms,sans-serif; Courier New=courier new,courier; Georgia=georgia,palatino; Helvetica=helvetica; Impact=impact,chicago; Symbol=symbol; Tahoma=tahoma,arial,helvetica,sans-serif; Terminal=terminal,monaco; Times New Roman=times new roman,times; Trebuchet MS=trebuchet ms,geneva; Verdana=verdana,geneva; Webdings=webdings; Wingdings=wingdings,zapf dingbats\",\r\n height: 500,\r\n init_instance_callback: function (editor) {\r\n var freeTiny: any = document.querySelector(\".mce-notification\");\r\n if(freeTiny) {\r\n freeTiny.style.display = \"none\";\r\n }\r\n },\r\n file_picker_callback: function (callback, value, meta) {\r\n // Provide file and text for the link dialog\r\n if (meta.filetype === \"file\") {\r\n callback(\"mypage.html\", { text: \"My text\" });\r\n }\r\n\r\n // Provide image and alt text for the image dialog\r\n if (meta.filetype === \"image\") {\r\n var input = document.getElementById(\"my-file\");\r\n if (input) {\r\n input.click();\r\n input.onchange = function () {\r\n const file: any = get(input, \"files\");\r\n handleChange({ file, callback });\r\n };\r\n }\r\n // UploadImgComponent\r\n // callback(\r\n // \"https://viettelhightech.com/storage/banner-trang-chu/artboard-4-2880x1380.png\",\r\n // { alt: \"My alt text\" }\r\n // );\r\n }\r\n\r\n // Provide alternative source and posted for the media dialog\r\n if (meta.filetype === \"media\") {\r\n callback(\"movie.mp4\", {\r\n source2: \"alt.ogg\",\r\n poster: \"image.jpg\",\r\n });\r\n }\r\n },\r\n }}\r\n onChange={handleEditorChange}\r\n />\r\n
\r\n );\r\n}\r\n\r\nexport default Tinymce;\r\n","import { useState } from \"react\";\r\nimport { cloneDeep, get, set } from \"lodash\";\r\nimport { PostInterface } from \"../../../models/post\";\r\nimport { Card, Form, Input, Divider, Button, Row, Col, Switch } from \"antd\";\r\nimport { EyeOutlined, EyeInvisibleOutlined } from \"@ant-design/icons\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport ReactQuill from \"react-quill\";\r\nimport \"react-quill/dist/quill.snow.css\";\r\nimport CategorySelectTreeComponent from \"../../../Layout/CategorySelectTree\";\r\nimport UploadImgComponent from \"../../../Layout/uploadImg\";\r\nimport PostHistoryPage from \"../../postHistory/component\";\r\nimport { FileTypeEnum } from \"../../../utils/enum\";\r\nimport \"./quill.scss\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { IUserState } from \"../../user/propState\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { PERMISSION_ENUM } from \"../../../utils/permisson.enum\";\r\nimport { isCheckPermisson } from \"../../../utils\";\r\nimport Tinymce from \"../../../Layout/TyniMce\";\r\n\r\nconst { TextArea } = Input;\r\nconst PostComponent = (props: any) => {\r\n const param = new URLSearchParams(props.location.search);\r\n const slug = param.get(\"slug\") || \"\";\r\n const history = useHistory();\r\n const [form] = Form.useForm();\r\n form.setFieldsValue(props.postInit);\r\n const [post, setPost] = useState(props.postInit);\r\n const [slugPost] = useState(slug);\r\n const [isHistory, setIsHistory] = useState(false);\r\n const { id }: any = useParams();\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isPostPublish = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.POST_ISPUBLISH\r\n );\r\n\r\n const _onFinish = async () => {\r\n props.onSubmit(props.postList);\r\n // _onSubmitCourse();\r\n };\r\n useEffectOnce(() => {\r\n setPost({ ...post, ...props.postInit });\r\n });\r\n const onChangeHtml = (html: string) => {\r\n props.onChange(props.postList, html, \"contentHtmlCoppy\", props.index);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n props.onChange(\r\n props.postList,\r\n e.target.value,\r\n \"name\",\r\n props.index\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onChange(\r\n props.postList,\r\n e.target.value,\r\n \"title\",\r\n props.index\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onCommon(props.postList, value, \"category\")\r\n }\r\n languagesOther={\r\n slug !== \"/product\"\r\n ? [\r\n {\r\n title: \"Danh mục gốc\",\r\n value: \"null\",\r\n },\r\n ]\r\n : []\r\n }\r\n onClear={() =>\r\n props.onCommon(props.postList, undefined, \"category\")\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onCommon(\r\n props.postList,\r\n !props.postInit.isPublish,\r\n \"isPublish\"\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onCommon(props.postList, e.target.value, \"indexSort\")\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n props.onCommon(props.postList, icon, \"icon\")\r\n }\r\n url={props.postInit.icon}\r\n type={FileTypeEnum.POST}\r\n />\r\n \r\n \r\n \r\n props.onCommon(props.postList, e.target.value, \"icon\")\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onChange(\r\n props.postList,\r\n e.target.value,\r\n \"content\",\r\n props.index\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {id && (\r\n setIsHistory(!isHistory)}\r\n />\r\n ) : (\r\n setIsHistory(!isHistory)}\r\n />\r\n )\r\n }\r\n >\r\n {isHistory && }\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PostComponent;\r\n","import { useState } from \"react\";\r\nimport { cloneDeep, get, set } from \"lodash\";\r\nimport { PostInterface } from \"../../../models/post\";\r\nimport { Tabs } from \"antd\";\r\nimport type { TabsProps } from \"antd\";\r\n\r\nimport \"react-quill/dist/quill.snow.css\";\r\nimport \"./quill.scss\";\r\nimport { ILanguage } from \"../../language/language.model\";\r\nimport PostComponent from \"./postComponent\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { createPostList, getPostLanguage, updatePost } from \"../services\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport { createPost } from \"../services\";\r\nimport { formatDataObj } from \"../../../utils\";\r\n\r\nconst PostTabsComponent = (props: any) => {\r\n const history = useHistory();\r\n const { id }: any = useParams();\r\n const param = new URLSearchParams(props.location.search);\r\n const language = param.get(\"language\") || undefined;\r\n //#region declare\r\n const [postList, setPostList] = useState([]);\r\n const [items, setItems] = useState([]);\r\n //#region useEffect\r\n const onChange = (\r\n listPost: PostInterface[],\r\n value: any,\r\n path: string,\r\n index: number\r\n ) => {\r\n set(listPost, `[${index}].${path}`, value);\r\n refreshItem(listPost);\r\n };\r\n\r\n const onCommon = (listPost: PostInterface[], value: any, path: string) => {\r\n const newListPost = listPost.map((m) => set(m, path, value));\r\n refreshItem(newListPost);\r\n };\r\n\r\n const onSubmit = async (postLists: PostInterface[]) => {\r\n if (!id) {\r\n await createPostList({\r\n data: postLists\r\n .filter((f) => f.title && f.name && f.title.length && f.name.length)\r\n .map((m) => ({\r\n ...m,\r\n category: m.category ? m.category : undefined,\r\n contentHtml: m.contentHtmlCoppy\r\n ? m.contentHtmlCoppy\r\n : m.contentHtml,\r\n })),\r\n });\r\n } else {\r\n for (const post of postLists) {\r\n if (post.id) {\r\n await updatePost(post.id, {\r\n ...post,\r\n contentHtml: post.contentHtmlCoppy\r\n ? post.contentHtmlCoppy\r\n : post.contentHtml,\r\n });\r\n } else {\r\n if (\r\n post.title &&\r\n post.title.length &&\r\n post.name &&\r\n post.name.length\r\n ) {\r\n post.postLanguageId = id;\r\n createPost({\r\n ...post,\r\n contentHtml: post.contentHtmlCoppy\r\n ? post.contentHtmlCoppy\r\n : post.contentHtml,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n history.goBack();\r\n };\r\n\r\n const refreshItem = (newPostList?: PostInterface[], detail?: any) => {\r\n const languageLocal = localStorage.getItem(\"language\");\r\n const languages: ILanguage[] = languageLocal\r\n ? JSON.parse(languageLocal)\r\n : [];\r\n function compare(a: any, b: any) {\r\n if (a.isDefault > b.isDefault) {\r\n return -1;\r\n }\r\n if (a.isDefault < b.isDefault) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n const listPosts: PostInterface[] = [];\r\n const langDefault = languages.find((f) => f.isDefault);\r\n const init = {\r\n isPublish: false,\r\n indexSort: \"\",\r\n category: \"\",\r\n icon: \"\",\r\n };\r\n\r\n if (langDefault) {\r\n const post = newPostList?.find((p) => p.language === langDefault.code);\r\n if (post) {\r\n init.isPublish = post.isPublish || false;\r\n init.indexSort = post.indexSort || \"\";\r\n init.category = post.category || \"\";\r\n init.icon = post.icon || \"\";\r\n }\r\n }\r\n const items: TabsProps[\"items\"] = languages\r\n .sort((a, b) => compare(a, b))\r\n .map((lang, index) => {\r\n const findLang = newPostList?.find((f) => f.language === lang.code);\r\n const postInit: PostInterface = findLang\r\n ? { ...set(findLang, \"isDefault\", lang.isDefault), ...init }\r\n : {\r\n ...init,\r\n id: 0,\r\n contentHtml: \"\",\r\n contentHtmlCoppy: \"\",\r\n language: lang.code,\r\n isDefault: lang.isDefault,\r\n title: \"\",\r\n name: \"\",\r\n slug: \"\",\r\n };\r\n listPosts.push(postInit);\r\n return {\r\n key: `${lang.code}`,\r\n label: lang.name,\r\n id: lang.code,\r\n children: (\r\n \r\n ),\r\n };\r\n });\r\n setItems(items);\r\n };\r\n\r\n useEffectOnce(() => {\r\n const detail = async () => {\r\n if (id) {\r\n const postResponse = await getPostLanguage(Number(id)).catch(\r\n (e) => null\r\n );\r\n let postlistDetail: any[] = get(postResponse, \"data\", []);\r\n postlistDetail = postlistDetail.map((post) => ({\r\n ...post,\r\n contentHtmlCoppy: post.contentHtml,\r\n }));\r\n refreshItem(postlistDetail);\r\n } else {\r\n refreshItem();\r\n }\r\n };\r\n detail();\r\n });\r\n\r\n const TabComp = async (lang: any) => {};\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PostTabsComponent;\r\n","import \"./styles.scss\";\r\nimport PostComponent from \"../post/component\";\r\n\r\nfunction PostPage(props: any) {\r\n const title = \"Sản phẩm\";\r\n return (\r\n <>\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PostPage;\r\n","import { Select } from \"antd\";\r\n\r\nimport { getRoleGroup } from \"../../screens/user/services\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { IRoleGroupModel } from \"../../screens/user/user.model\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport { IUserState } from \"../../screens/user/propState\";\r\nimport { getRoleGroupAction } from \"../../screens/user/slice\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\n\r\nconst RoleSelectComponent = ({\r\n role,\r\n onSelect,\r\n onClear,\r\n disabled,\r\n}: {\r\n filter?: any;\r\n role?: string;\r\n disabled?: boolean;\r\n onSelect?: (role: string) => void;\r\n onClear?: () => void;\r\n}) => {\r\n // start category\r\n const dispatch = useDispatch();\r\n const userReducer = useAppSelector((state) => state.screens.user);\r\n //#end category\r\n useEffect(() => {\r\n dispatch(getRoleGroupAction({}) as any)\r\n }, [dispatch])\r\n \r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default RoleSelectComponent;\r\n","import { useEffect, useState } from \"react\";\r\nimport { update, cloneDeep } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { createUserAction, getUserDetail } from \"../slice\";\r\nimport { IUser, IUserAction } from \"../user.model\";\r\nimport { Card, Form, Input, Divider, Button, Row, Col, Select } from \"antd\";\r\nimport { useHistory, useParams, useLocation } from \"react-router\";\r\nimport UploadImgComponent from \"../../../Layout/uploadImg\";\r\nimport { FileTypeEnum, GenderEnum } from \"../../../utils/enum\";\r\nimport { REGEX, isCheckPermisson } from \"../../../utils\";\r\nimport RoleSelectComponent from \"../../../Layout/RoleGroupSelect\";\r\nimport { IUserState } from \"../propState\";\r\nimport { PERMISSION_ENUM } from \"../../../utils/permisson.enum\";\r\n\r\nconst CreateUserComponent = () => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n\r\n const dispatch = useDispatch();\r\n const dataReducer = useAppSelector((state) => state.screens.user);\r\n const [form] = Form.useForm();\r\n const [dataAction, setDataAction] = useState({});\r\n const [isUploadImg, setUploadImg] = useState(false);\r\n const { id }: any = useParams();\r\n const location = useLocation();\r\n //#endregion declare\r\n const pathProfile = `/user/profile/${id}`;\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isUserUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.USER_UPDATE\r\n );\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onSubmitCourse = async () => {\r\n const body = { ...dataAction } as IUser;\r\n await dispatch(\r\n createUserAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n const onChangeValue = (valueUp: any, path: string) => {\r\n const newData = cloneDeep({ ...dataAction });\r\n update(newData, path, function (value) {\r\n return valueUp;\r\n });\r\n form.setFieldsValue(newData);\r\n setDataAction({ ...newData });\r\n };\r\n const onSelectRole = (role: string) => {\r\n onChangeValue(role, \"role\");\r\n };\r\n const onClearRole = () => {\r\n onChangeValue(undefined, \"role\");\r\n };\r\n const _onFinish = async () => {\r\n _onSubmitCourse();\r\n };\r\n\r\n useEffect(() => {\r\n const getDetail = async () => {\r\n if (id) {\r\n await dispatch(getUserDetail({ id }) as any);\r\n setUploadImg(true);\r\n }\r\n };\r\n getDetail();\r\n }, [dispatch, id]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.detail && id) {\r\n setDataAction(dataReducer.detail);\r\n form.setFieldsValue(dataReducer.detail);\r\n }\r\n }, [dataReducer, id, form]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `firstName`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `lastName`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `phoneNumber`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(value, \"gender\")}\r\n // onClear={clearBrand}\r\n allowClear\r\n value={dataAction.gender}\r\n options={[\r\n {\r\n label: \"--\",\r\n value: \"\",\r\n },\r\n {\r\n label: \"Nam\",\r\n value: GenderEnum.MALE,\r\n },\r\n {\r\n label: \"Nữ\",\r\n value: GenderEnum.FEMALE,\r\n },\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `username`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `email`)}\r\n />\r\n \r\n \r\n \r\n \r\n

- Mật khẩu phải có ít nhất:

\r\n

+ Độ dài 8 ký tự

\r\n

+ Một chữ cái in hoa

\r\n

+ Một chữ cái thường

\r\n

+ Một chữ số

\r\n

+ Một ký tự đặc biệt

\r\n \r\n ),\r\n },\r\n ]}\r\n >\r\n onChangeValue(e.target.value, `password`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `passwordConfirm`)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {((id && isUploadImg) || !id) && (\r\n \r\n )}\r\n \r\n
\r\n \r\n onChangeValue(e.target.value, `avatar`)}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {(isUserUpdate || pathProfile === location.pathname) && (\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CreateUserComponent;\r\n","import { Col, Input, Row } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchUser } from \"../user.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getUsersAction } from \"../slice\";\r\n\r\nconst defaultState: ISearchUser = {\r\n username: \"\",\r\n email: \"\",\r\n phoneNumber: \"\",\r\n};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [dataState, dataStateFn] = useAsyncFn(async (params: ISearchUser) => {\r\n return dispatch(getUsersAction(params) as any);\r\n });\r\n\r\n const debounceLoadData = useMemo(\r\n () =>\r\n debounce((query: ISearchUser) => {\r\n return dataStateFn(query);\r\n }, 500),\r\n [dataStateFn]\r\n );\r\n const [state, setState] = useState(_.cloneDeep(defaultState));\r\n //#endregion declare\r\n const onChangeState = (query: ISearchUser) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadData(query);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { deleteUserAction, getRoleGroupAction, getUsersAction } from \"./slice\";\r\nimport { IUser } from \"./user.model\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"./propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst UserPage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n count: 0,\r\n currentPage: 1,\r\n });\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isUserUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.USER_UPDATE\r\n );\r\n const isUserCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.USER_CREATE\r\n );\r\n const isUserList = isCheckPermisson(permissionObj, PERMISSION_ENUM.USER_LIST);\r\n const isUserDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.USER_DELETE\r\n );\r\n const header: any = [\r\n {\r\n title: \"ID\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Tên\",\r\n key: \"firstName\",\r\n dataIndex: \"firstName\",\r\n align: \"center\",\r\n render: (_text: string, record: IUser, index: number) => {\r\n return <>{record.firstName + \" \" + record.lastName};\r\n },\r\n },\r\n {\r\n title: \"Tên đăng nhập\",\r\n key: \"username\",\r\n dataIndex: \"username\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Email\",\r\n key: \"email\",\r\n dataIndex: \"email\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Điện thoại\",\r\n key: \"phoneNumber\",\r\n dataIndex: \"phoneNumber\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Ảnh đại diện\",\r\n key: \"avatar\",\r\n align: \"center\",\r\n render: (_text: string, record: IUser, index: number) => {\r\n return ;\r\n },\r\n },\r\n {\r\n title: \"Vai trò\",\r\n key: \"role\",\r\n align: \"center\",\r\n render: (_text: string, record: IUser) => {\r\n const group = dataReducer?.roleGroup?.find(\r\n (f) => f.value === record.role\r\n );\r\n return

{group?.label}

;\r\n },\r\n },\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: IUser, index: number) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: IUser, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state) => state.screens.user);\r\n const menu = (item: IUser, index: number) => {\r\n return (\r\n \r\n {isUserUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isUserDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isUserList && dispatch(getUsersAction({}) as any);\r\n if (!dataReducer.roleGroup?.length) {\r\n dispatch(getRoleGroupAction({}) as any);\r\n }\r\n }, [dispatch, dataReducer.roleGroup, isUserList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n const _confirmDelete = (item: IUser) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa người dùng không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteUserAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Người dùng

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isUserCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isUserList && (\r\n \r\n \r\n \r\n )}\r\n {isUserList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserPage;\r\n","import configServices from \"../../../utils/configServices\";\r\nimport { IRoleGroupResponseModel, IPermissionGroupResponseModel, IRoleGroupDetailResponseModel, IRoleGroupModel } from \"../role.model\";\r\n\r\nexport const createRole = async (body: IRoleGroupModel) => {\r\n const result = await configServices.postService(\"role\", {\r\n ...body,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteRole = async (id: number) => {\r\n const result = await configServices.deleteService(\r\n `role/${id}`\r\n );\r\n return result;\r\n};\r\nexport const getRoleDetail = async (id: number) => {\r\n const result = await configServices.getService(\r\n `role/${id}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateRole = async (id: number, param: any) => {\r\n const result = await configServices.patchService(\r\n `role/${id}`,\r\n { ...param }\r\n );\r\n return result;\r\n};\r\n\r\n\r\nexport const getRole = async () => {\r\n const result = await configServices.getService(\r\n `user/role`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getListRoleGroup = async (filter: any) => {\r\n const result = await configServices.getService(\r\n `role`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\n// import { RootState } from \"../../app/store\";\r\nimport {\r\n createUser,\r\n deleteUser,\r\n updateUser,\r\n getUser,\r\n getRoleGroup,\r\n} from \"../user/services\";\r\n\r\nimport { defaultFilter } from \"../../utils\";\r\nimport { IRoleState } from \"./propState\";\r\nimport { IRoleGroupResponseModel } from \"./role.model\";\r\nimport { createRole, deleteRole, getListRoleGroup, updateRole } from \"./services\";\r\n\r\nconst initialState: IRoleState = {\r\n data: [],\r\n currentPage: 1,\r\n count: 0,\r\n};\r\n\r\nexport const getRoleGroupsAction = createAsyncThunk(\r\n \"role\",\r\n async (filter: any, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const state = thunkAPI.getState() as RootState;\r\n const response: any = await getListRoleGroup(defaultFilter({ ...filter }));\r\n thunkAPI.dispatch(setListRoleGroupAction(response));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\n\r\nexport const getRoleDetail = createAsyncThunk(\r\n \"role/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const statek = thunkAPI.getState() as RootState;\r\n const response: any = await getUser(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createRoleAction = createAsyncThunk(\r\n \"role/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const body = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createRole(body);\r\n } else {\r\n await updateRole(payload.id, body);\r\n }\r\n dispatch(setLoadingAction(false));\r\n \r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteRoleAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteRole(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getRoleGroupsAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getRoleGroupAction = createAsyncThunk(\r\n \"role/group\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n const response = await getRoleGroup();\r\n // dispatch(setListRoleGroupAction(response.data));\r\n dispatch(setLoadingAction(false));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState,\r\n reducers: {\r\n setListRoleGroupAction: (state: IRoleState, action: PayloadAction) => {\r\n console.log(' action.payload;: ', action.payload);\r\n state.data = action.payload.data;\r\n state.count = action.payload.count;\r\n state.currentPage = 1;\r\n },\r\n \r\n },\r\n});\r\n\r\nexport const {\r\n setListRoleGroupAction,\r\n} = userSlice.actions;\r\n\r\nexport default userSlice.reducer;\r\n","import { useEffect, useState } from \"react\";\r\nimport { update, cloneDeep, get, set } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport {\r\n Card,\r\n Form,\r\n Input,\r\n Divider,\r\n Button,\r\n Row,\r\n Col,\r\n Select,\r\n Table,\r\n Checkbox,\r\n} from \"antd\";\r\nimport { useHistory, useParams, useLocation } from \"react-router\";\r\nimport UploadImgComponent from \"../../../Layout/uploadImg\";\r\nimport { FileTypeEnum, GenderEnum } from \"../../../utils/enum\";\r\nimport { REGEX, isCheckPermisson } from \"../../../utils\";\r\nimport RoleSelectComponent from \"../../../Layout/RoleGroupSelect\";\r\nimport {\r\n LABLE_MODULE_ENUM,\r\n ModulePermisson,\r\n PERMISSION_ENUM,\r\n} from \"../../../utils/permisson.enum\";\r\nimport { IUserState } from \"../../user/propState\";\r\nimport { getRole, getRoleDetail } from \"../services\";\r\nimport { IUserAction } from \"../../user/user.model\";\r\nimport { createRoleAction } from \"../slice\";\r\nimport { IRoleGroupModel, IRoleModuleModel } from \"../role.model\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { setLoadingAction } from \"../../../app/commonSlice\";\r\n\r\nconst CreateUserComponent = () => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n\r\n const dispatch = useDispatch();\r\n const dataReducer = useAppSelector((state) => state.screens.user);\r\n const [form] = Form.useForm();\r\n\r\n const [dataAction, setDataAction] = useState({});\r\n const dataPermission: IRoleGroupModel = {\r\n label: \"\",\r\n value: \"\",\r\n roles: ModulePermisson.map((module) => ({\r\n label: LABLE_MODULE_ENUM[module],\r\n module,\r\n permission: {\r\n list: false,\r\n create: false,\r\n update: false,\r\n delete: false,\r\n isPublish: false,\r\n },\r\n })),\r\n };\r\n const [data, setData] = useState(dataPermission);\r\n\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isUserUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.USER_UPDATE\r\n );\r\n\r\n const onChangeData = (value: any, path: string) => {\r\n const newData: any = cloneDeep(data);\r\n set(newData, path, value);\r\n setData(newData);\r\n form.setFieldsValue(newData);\r\n };\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onFinish = async () => {\r\n const body = {\r\n ...data,\r\n } as IRoleGroupModel;\r\n await dispatch(\r\n createRoleAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n\r\n useEffectOnce(() => {\r\n form.setFieldsValue(dataPermission);\r\n const getDetail = async () => {\r\n if (id) {\r\n dispatch(setLoadingAction(true));\r\n const respon = await getRoleDetail(id);\r\n const dataDetailt = respon.data;\r\n if (dataDetailt) {\r\n const newData = cloneDeep(data);\r\n newData.label = dataDetailt.label;\r\n newData.value = dataDetailt.value;\r\n if (dataDetailt.roles) {\r\n newData.roles = dataDetailt.roles;\r\n }\r\n setData(newData);\r\n form.setFieldsValue(newData);\r\n }\r\n dispatch(setLoadingAction(false));\r\n }\r\n };\r\n getDetail();\r\n });\r\n\r\n const header: any = [\r\n {\r\n title: \"Module\",\r\n key: \"label\",\r\n dataIndex: \"label\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Xem danh sách\",\r\n key: \"permission.list\",\r\n dataIndex: \"permission.list\",\r\n width: \"15%\",\r\n align: \"center\",\r\n render: (_text: string, record: any, index: number) => {\r\n return (\r\n \r\n onChangeData(!e.target.value, `roles[${index}].permission.list`)\r\n }\r\n />\r\n );\r\n },\r\n },\r\n {\r\n title: \"Thêm\",\r\n key: \"permission.create\",\r\n dataIndex: \"permission.create\",\r\n width: \"15%\",\r\n align: \"center\",\r\n render: (_text: string, record: any, index: number) => {\r\n return (\r\n \r\n onChangeData(!e.target.value, `roles[${index}].permission.create`)\r\n }\r\n />\r\n );\r\n },\r\n },\r\n {\r\n title: \"Sửa\",\r\n key: \"permission.update\",\r\n dataIndex: \"permission.update\",\r\n align: \"center\",\r\n width: \"15%\",\r\n render: (_text: string, record: any, index: number) => {\r\n return (\r\n \r\n onChangeData(!e.target.value, `roles[${index}].permission.update`)\r\n }\r\n />\r\n );\r\n },\r\n },\r\n {\r\n title: \"Xóa\",\r\n key: \"permission.delete\",\r\n dataIndex: \"permission.delete\",\r\n align: \"center\",\r\n width: \"15%\",\r\n render: (_text: string, record: any, index: number) => {\r\n return (\r\n \r\n onChangeData(!e.target.value, `roles[${index}].permission.delete`)\r\n }\r\n />\r\n );\r\n },\r\n },\r\n {\r\n title: \"Xuất bản\",\r\n key: \"permission.isPublish\",\r\n dataIndex: \"permission.isPublish\",\r\n width: \"15%\",\r\n align: \"center\",\r\n render: (_text: string, record: any, index: number) => {\r\n return (\r\n \r\n onChangeData(\r\n !e.target.value,\r\n `roles[${index}].permission.isPublish`\r\n )\r\n }\r\n />\r\n );\r\n },\r\n },\r\n ];\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n onChangeData(e.target.value, `label`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeData(e.target.value, `value`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isUserUpdate && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateUserComponent;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { IUser } from \"../user/user.model\";\r\nimport {\r\n deleteUserAction,\r\n} from \"../user/slice\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { deleteRoleAction, getRoleGroupsAction } from \"./slice\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst UserPage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n count: 0,\r\n currentPage: 1,\r\n });\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isRoleUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.ROLE_UPDATE\r\n );\r\n const isRoleCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.ROLE_CREATE\r\n );\r\n const isRoleList = isCheckPermisson(permissionObj, PERMISSION_ENUM.ROLE_LIST);\r\n const isRoleDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.ROLE_DELETE\r\n );\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n render: (_text: string, record: IUser, index: number) => {\r\n return <>{index + 1};\r\n },\r\n },\r\n {\r\n title: \"Tên nhóm quyền\",\r\n key: \"label\",\r\n dataIndex: \"label\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Mã nhóm quyền\",\r\n key: \"value\",\r\n dataIndex: \"value\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: IUser, index: number) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: IUser, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state) => state.screens.role);\r\n\r\n const menu = (item: IUser, index: number) => {\r\n return (\r\n \r\n {isRoleUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isRoleDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isRoleList && dispatch(getRoleGroupsAction({}) as any);\r\n }, [dispatch, isRoleList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n // useEffectOnce(() => {\r\n // dispatch(getRoleGroupsAction({}) as any);\r\n // if (dataReducer) {\r\n // console.log('dataReducer:: ', dataReducer);\r\n // setState(dataReducer);\r\n // }\r\n // });\r\n\r\n\r\n const _confirmDelete = (item: IUser) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa nhóm quyền không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteRoleAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n Phân quyền}\r\n className=\"rounded-none\"\r\n extra={\r\n isRoleCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isRoleList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserPage;\r\n","import configServices from \"../../../utils/configServices\";\r\nimport { PartnerTypeEnum } from \"../../../utils/enum\";\r\nimport { IPartner, ISearchUser } from \"../partner.model\";\r\n\r\nexport const createPartner = async (body: IPartner) => {\r\n const result = await configServices.postService(\"partner\", {\r\n ...body,\r\n type: PartnerTypeEnum.PARTNER,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deletePartner = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `partner/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updatePartner = async (id: number, param: any) => {\r\n const result = await configServices.patchService(`partner/${id}`, {\r\n ...param,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const getPartner = async (id: number) => {\r\n const result = await configServices.getService(\r\n `partner/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getPartners = async (filter?: ISearchUser) => {\r\n if (filter) filter.type = PartnerTypeEnum.PARTNER;\r\n const result = await configServices.getService(\r\n `partner`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { IPartnerState } from \"./propState\";\r\nimport {\r\n createPartner,\r\n deletePartner,\r\n updatePartner,\r\n getPartners,\r\n getPartner,\r\n} from \"./services\";\r\nimport { IPartner, ISearchUser } from \"./partner.model\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: IPartnerState = {\r\n data: [],\r\n currentPage: 1,\r\n detail: {\r\n id: 1,\r\n name: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getUsersAction = createAsyncThunk(\r\n \"partners\",\r\n async (filter: ISearchUser, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPartners(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getUserDetail = createAsyncThunk(\r\n \"partner/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPartner(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createUserAction = createAsyncThunk(\r\n \"partner/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const banner = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createPartner(banner);\r\n } else {\r\n await updatePartner(payload.id, banner);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteUserAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deletePartner(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getUsersAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: IPartnerState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: IPartnerState,\r\n action: PayloadAction\r\n ) => {\r\n const payload: any = action.payload;\r\n delete payload['password']\r\n state.detail = payload;\r\n },\r\n setStatusModalAction: (\r\n state: IPartnerState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: IPartner | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setPostAction, setStatusModalAction, setDetailAction } =\r\nuserSlice.actions;\r\n\r\nexport default userSlice.reducer;\r\n","import { useEffect, useState } from \"react\";\r\nimport { update, cloneDeep } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { createUserAction, getUserDetail } from \"../slice\";\r\nimport { IPartner, IPartnerAction } from \"../partner.model\";\r\nimport { Card, Form, Input, Divider, Button, Row, Col, Select } from \"antd\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport UploadImgComponent from \"../../../Layout/uploadImg\";\r\nimport TextArea from \"antd/es/input/TextArea\";\r\n\r\nconst CreatePartnerComponent = () => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const [isUploadImg, setUploadImg] = useState(false);\r\n const dataReducer = useAppSelector((state) => state.screens.partner);\r\n const [form] = Form.useForm();\r\n const [dataAction, setDataAction] = useState({});\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onSubmitCourse = async () => {\r\n const body = { ...dataAction } as IPartnerAction;\r\n await dispatch(\r\n createUserAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n const onChangeValue = (valueUp: any, path: string) => {\r\n const newData = cloneDeep({ ...dataAction });\r\n update(newData, path, function (value) {\r\n return valueUp;\r\n });\r\n setDataAction({ ...newData });\r\n };\r\n const _onFinish = async () => {\r\n _onSubmitCourse();\r\n };\r\n\r\n useEffect(() => {\r\n if (id) {\r\n const detail = async () => {\r\n await dispatch(getUserDetail({ id }) as any);\r\n setUploadImg(true);\r\n };\r\n detail();\r\n }\r\n }, [dispatch, id]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.detail && id) {\r\n setDataAction(dataReducer.detail);\r\n form.setFieldsValue(dataReducer.detail);\r\n }\r\n }, [dataReducer, id, setDataAction, form]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `name`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `description`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {((id && isUploadImg) || !id) && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `image`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreatePartnerComponent;\r\n","import { Button, Card, Col, Input, Row } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchUser } from \"../partner.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getUsersAction } from \"../slice\";\r\n\r\nconst defaultState: ISearchUser = {\r\n name: \"\",\r\n description: \"\",\r\n};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [dataState, dataStateFn] = useAsyncFn(async (params: ISearchUser) => {\r\n return dispatch(getUsersAction(params) as any);\r\n });\r\n\r\n const debounceLoadData = useMemo(\r\n () =>\r\n debounce((query: ISearchUser) => {\r\n return dataStateFn(query);\r\n }, 500),\r\n [dataStateFn]\r\n );\r\n const [state, setState] = useState(_.cloneDeep(defaultState));\r\n //#endregion declare\r\n const onChangeState = (query: ISearchUser) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadData(query);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport {\r\n setStatusModalAction,\r\n deleteUserAction,\r\n getUsersAction,\r\n} from \"./slice\";\r\nimport { IPartner } from \"./partner.model\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst UserPage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n currentPage: 1,\r\n });\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isPartnerCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.PARTNER_CREATE\r\n );\r\n const isPartnerUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.PARTNER_UPDATE\r\n );\r\n const isPartnerList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.PARTNER_LIST\r\n );\r\n const isPartnerDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.PARTNER_DELETE\r\n );\r\n\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n width: 50,\r\n align: \"center\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return

{index + 1}

;\r\n },\r\n },\r\n {\r\n title: \"Tên đối tác\",\r\n key: \"name\",\r\n dataIndex: \"name\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Mô tả\",\r\n key: \"description\",\r\n dataIndex: \"description\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Ảnh bìa\",\r\n key: \"icon\",\r\n align: \"center\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return ;\r\n },\r\n },\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state) => state.screens.partner);\r\n const menu = (item: IPartner, index: number) => {\r\n return (\r\n \r\n {isPartnerUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isPartnerDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isPartnerList && dispatch(getUsersAction({}) as any);\r\n }, [dispatch, isPartnerList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.data) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n const _confirmDelete = (item: IPartner) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa người dùng không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteUserAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Đối tác

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isPartnerCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isPartnerList && (\r\n \r\n \r\n \r\n )}\r\n {isPartnerList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserPage;\r\n","import configServices from \"../../../utils/configServices\";\r\nimport { PartnerTypeEnum } from \"../../../utils/enum\";\r\nimport { IPartner, ISearchUser } from \"../certificate.model\";\r\n\r\nexport const createPartner = async (body: IPartner) => {\r\n const result = await configServices.postService(\"partner\", {\r\n ...body,\r\n type: PartnerTypeEnum.CERTIFICATE,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deletePartner = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `partner/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updatePartner = async (id: number, param: any) => {\r\n const result = await configServices.patchService(`partner/${id}`, {\r\n ...param,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const getPartner = async (id: number) => {\r\n const result = await configServices.getService(\r\n `partner/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getPartners = async (filter?: ISearchUser) => {\r\n if (filter) filter.type = PartnerTypeEnum.CERTIFICATE;\r\n const result = await configServices.getService(\r\n `partner`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { IPartnerState } from \"./propState\";\r\nimport {\r\n createPartner,\r\n deletePartner,\r\n updatePartner,\r\n getPartners,\r\n getPartner,\r\n} from \"./services\";\r\nimport { IPartner, ISearchUser } from \"./certificate.model\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: IPartnerState = {\r\n data: [],\r\n currentPage: 1,\r\n detail: {\r\n id: 1,\r\n name: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getUsersAction = createAsyncThunk(\r\n \"partners\",\r\n async (filter: ISearchUser, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPartners(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getUserDetail = createAsyncThunk(\r\n \"partner/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getPartner(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createUserAction = createAsyncThunk(\r\n \"partner/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const banner = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createPartner(banner);\r\n } else {\r\n await updatePartner(payload.id, banner);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteUserAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deletePartner(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getUsersAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const userSlice = createSlice({\r\n name: \"user\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: IPartnerState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: IPartnerState,\r\n action: PayloadAction\r\n ) => {\r\n const payload: any = action.payload;\r\n delete payload['password']\r\n state.detail = payload;\r\n },\r\n setStatusModalAction: (\r\n state: IPartnerState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: IPartner | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setPostAction, setStatusModalAction, setDetailAction } =\r\nuserSlice.actions;\r\n\r\nexport default userSlice.reducer;\r\n","import { useEffect, useState } from \"react\";\r\nimport { update, cloneDeep } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { createUserAction, getUserDetail } from \"../slice\";\r\nimport { IPartner, IPartnerAction } from \"../certificate.model\";\r\nimport { Card, Form, Input, Divider, Button, Row, Col, Select } from \"antd\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport UploadImgComponent from \"../../../Layout/uploadImg\";\r\nimport TextArea from \"antd/es/input/TextArea\";\r\n\r\nconst CreateCertificateComponent = () => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const [isUploadImg, setUploadImg] = useState(false);\r\n const dataReducer = useAppSelector((state) => state.screens.partner);\r\n const [form] = Form.useForm();\r\n const [dataAction, setDataAction] = useState({});\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onSubmitCourse = async () => {\r\n const body = { ...dataAction } as IPartnerAction;\r\n await dispatch(\r\n createUserAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n const onChangeValue = (valueUp: any, path: string) => {\r\n const newData = cloneDeep({ ...dataAction });\r\n update(newData, path, function (value) {\r\n return valueUp;\r\n });\r\n setDataAction({ ...newData });\r\n };\r\n const _onFinish = async () => {\r\n _onSubmitCourse();\r\n };\r\n\r\n useEffect(() => {\r\n if (id) {\r\n const detail = async () => {\r\n await dispatch(getUserDetail({ id }) as any);\r\n setUploadImg(true);\r\n };\r\n detail();\r\n }\r\n }, [dispatch, id]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.detail && id) {\r\n setDataAction(dataReducer.detail);\r\n form.setFieldsValue(dataReducer.detail);\r\n }\r\n }, [dataReducer, id, setDataAction, form]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `name`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `description`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {((id && isUploadImg) || !id) && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `image`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateCertificateComponent;\r\n","import { Button, Card, Col, Input, Row } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchUser } from \"../certificate.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getUsersAction } from \"../slice\";\r\n\r\nconst defaultState: ISearchUser = {\r\n name: \"\",\r\n description: \"\",\r\n};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [dataState, dataStateFn] = useAsyncFn(async (params: ISearchUser) => {\r\n return dispatch(getUsersAction(params) as any);\r\n });\r\n\r\n const debounceLoadData = useMemo(\r\n () =>\r\n debounce((query: ISearchUser) => {\r\n return dataStateFn(query);\r\n }, 500),\r\n [dataStateFn]\r\n );\r\n const [state, setState] = useState(_.cloneDeep(defaultState));\r\n //#endregion declare\r\n const onChangeState = (query: ISearchUser) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadData(query);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport {\r\n setStatusModalAction,\r\n deleteUserAction,\r\n getUsersAction,\r\n} from \"./slice\";\r\nimport { IPartner } from \"./certificate.model\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst CertificatePage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n currentPage: 1,\r\n });\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isCertificateCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CERTIFICATE_CREATE\r\n );\r\n const isCertificateUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CERTIFICATE_UPDATE\r\n );\r\n const isCertificateList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CERTIFICATE_LIST\r\n );\r\n const isCertificateDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CERTIFICATE_DELETE\r\n );\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n width: 50,\r\n align: \"center\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return

{index + 1}

;\r\n },\r\n },\r\n {\r\n title: \"Tên đối tác\",\r\n key: \"name\",\r\n dataIndex: \"name\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Mô tả\",\r\n key: \"description\",\r\n dataIndex: \"description\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Ảnh bìa\",\r\n key: \"icon\",\r\n align: \"center\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return ;\r\n },\r\n },\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: IPartner, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state) => state.screens.partner);\r\n const menu = (item: IPartner, index: number) => {\r\n return (\r\n \r\n {isCertificateUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isCertificateDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isCertificateList && dispatch(getUsersAction({}) as any);\r\n }, [dispatch, isCertificateList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.data) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n const _confirmDelete = (item: IPartner) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa người dùng không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteUserAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Chứng chỉ

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isCertificateCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isCertificateList && (\r\n \r\n \r\n \r\n )}\r\n {isCertificateList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CertificatePage;\r\n","import { useEffect, useState } from \"react\";\r\nimport { update, cloneDeep } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { createLanguageAction, getLanguageDetail } from \"../slice\";\r\nimport { ILanguage, ILanguageAction } from \"../language.model\";\r\nimport { Card, Form, Input, Divider, Button, Row, Col, Switch } from \"antd\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport UploadImgComponent from \"../../../Layout/uploadImg\";\r\nimport { FileTypeEnum } from \"../../../utils/enum\";\r\nimport TextArea from \"antd/es/input/TextArea\";\r\n\r\nconst CreateLanguageComponent = () => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const dataReducer = useAppSelector((state) => state.screens.language);\r\n const [form] = Form.useForm();\r\n const [dataAction, setDataAction] = useState({});\r\n const [isUploadImg, setUploadImg] = useState(false);\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onSubmitCourse = async () => {\r\n const body = { ...dataAction } as ILanguage;\r\n await dispatch(\r\n createLanguageAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n const onChangeValue = (valueUp: any, path: string) => {\r\n const newData = cloneDeep({ ...dataAction });\r\n update(newData, path, function (value) {\r\n return valueUp;\r\n });\r\n setDataAction({ ...newData });\r\n };\r\n const _onFinish = async () => {\r\n _onSubmitCourse();\r\n };\r\n\r\n useEffect(() => {\r\n const getDetail = async () => {\r\n if (id) {\r\n await dispatch(getLanguageDetail({ id }) as any);\r\n setUploadImg(true);\r\n }\r\n };\r\n getDetail();\r\n }, [dispatch, id]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.detail && id) {\r\n setDataAction(dataReducer.detail);\r\n form.setFieldsValue(dataReducer.detail);\r\n }\r\n }, [dataReducer, id, form]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `name`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `code`)}\r\n disabled={!!id}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(!dataAction.isDefault, `isDefault`)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `description`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {((id && isUploadImg) || !id) && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n onChangeValue(e.target.value, `image`)}\r\n />\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CreateLanguageComponent;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n CheckOutlined,\r\n CloseOutlined\r\n} from \"@ant-design/icons\";\r\nimport { deleteLanguageAction, getLanguagesAction } from \"./slice\";\r\nimport { ILanguage } from \"./language.model\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst LanguagePage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n count: 0,\r\n currentPage: 1,\r\n });\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isLanguageCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.LANGUAGE_CREATE\r\n );\r\n const isLanguageUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.LANGUAGE_UPDATE\r\n );\r\n const isLanguageList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.LANGUAGE_LIST\r\n );\r\n const isLanguageDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.LANGUAGE_DELETE\r\n );\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n render: (_text: string, record: ILanguage, index: number) => {\r\n return <>{index + 1};\r\n },\r\n },\r\n {\r\n title: \"Tên ngôn ngữ\",\r\n key: \"name\",\r\n dataIndex: \"name\",\r\n align: \"center\",\r\n render: (_text: string, record: ILanguage, index: number) => {\r\n return <>{record.name};\r\n },\r\n },\r\n {\r\n title: \"Mã code\",\r\n key: \"code\",\r\n dataIndex: \"code\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Mô tả\",\r\n key: \"description\",\r\n dataIndex: \"description\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Quốc kỳ\",\r\n key: \"image\",\r\n align: \"center\",\r\n render: (_text: string, record: ILanguage, index: number) => {\r\n return ;\r\n },\r\n },\r\n {\r\n title: \"Mặc định\",\r\n key: \"ispublish\",\r\n align: \"center\",\r\n isCanSort: true,\r\n render: (_text: string, record: ILanguage, index: number) => {\r\n return (\r\n <>\r\n {record.isDefault ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: ILanguage) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: ILanguage, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state) => state.screens.language);\r\n const menu = (item: ILanguage, index: number) => {\r\n return (\r\n \r\n {isLanguageUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isLanguageDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isLanguageList && dispatch(getLanguagesAction({}) as any);\r\n }, [dispatch, isLanguageList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n const _confirmDelete = (item: ILanguage) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa người dùng không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteLanguageAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Ngôn ngữ

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isLanguageCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {/* */}\r\n {isLanguageList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LanguagePage;\r\n","import configServices from \"../../../utils/configServices\";\r\nimport { IContact, ISearchContact } from \"../contact.model\";\r\n\r\nexport const createContact = async (body: IContact) => {\r\n const result = await configServices.postService(\"infor\", {\r\n ...body,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteContact = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `infor/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateContact = async (id: number, param: any) => {\r\n const result = await configServices.patchService(\r\n `infor/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getContact = async (id: number) => {\r\n const result = await configServices.getService(\r\n `infor/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getContacts = async (filter?: ISearchContact) => {\r\n const result = await configServices.getService(\r\n `infor`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { IContactState } from \"./propState\";\r\nimport {\r\n createContact,\r\n deleteContact,\r\n updateContact,\r\n getContacts,\r\n getContact,\r\n} from \"./services\";\r\nimport { IContact, ISearchContact } from \"./contact.model\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: IContactState = {\r\n data: [],\r\n currentPage: 1,\r\n detail: {\r\n name: \"\",\r\n content: \"\",\r\n id: 1,\r\n phone: \"\"\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getContactsAction = createAsyncThunk(\r\n \"contacts\",\r\n async (filter: ISearchContact, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getContacts(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getContactDetail = createAsyncThunk(\r\n \"contact/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getContact(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createContactAction = createAsyncThunk(\r\n \"contact/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const banner = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createContact(banner);\r\n } else {\r\n await updateContact(payload.id, banner);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteContactAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteContact(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getContactsAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const contactSlice = createSlice({\r\n name: \"contact\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: IContactState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: IContactState,\r\n action: PayloadAction\r\n ) => {\r\n const payload: any = action.payload;\r\n delete payload['password']\r\n state.detail = payload;\r\n },\r\n setStatusModalAction: (\r\n state: IContactState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: IContact | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setPostAction, setStatusModalAction, setDetailAction } =\r\ncontactSlice.actions;\r\n\r\nexport default contactSlice.reducer;\r\n","import { useEffect, useState } from \"react\";\r\nimport { update, cloneDeep } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { createContactAction, getContactDetail } from \"../slice\";\r\nimport { IContact, IContactAction } from \"../contact.model\";\r\nimport { Card, Form, Input, Divider, Button, Row, Col, Select } from \"antd\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport TextArea from \"antd/es/input/TextArea\";\r\nimport {\r\n INFOR_TYPE_ENUM,\r\n InforPurpose,\r\n InforPurposeEnum,\r\n} from \"../../../utils/enum\";\r\n\r\nconst CreateContactComponent = () => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const dataReducer = useAppSelector((state) => state.screens.contact);\r\n const [form] = Form.useForm();\r\n const [dataAction, setDataAction] = useState({\r\n name: \"\",\r\n content: \"\",\r\n phone: \"\",\r\n });\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onSubmitCourse = async () => {\r\n const body = { ...dataAction } as IContact;\r\n await dispatch(\r\n createContactAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n const onChangeValue = (valueUp: any, path: string) => {\r\n const newData = cloneDeep({ ...dataAction });\r\n update(newData, path, function (value) {\r\n return valueUp;\r\n });\r\n setDataAction({ ...newData });\r\n };\r\n const _onFinish = async () => {\r\n _onSubmitCourse();\r\n };\r\n\r\n useEffect(() => {\r\n const getDetail = async () => {\r\n if (id) {\r\n await dispatch(getContactDetail({ id }) as any);\r\n }\r\n };\r\n getDetail();\r\n }, [dispatch, id]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.detail && id) {\r\n setDataAction(dataReducer.detail);\r\n form.setFieldsValue(dataReducer.detail);\r\n }\r\n }, [dataReducer, id, form]);\r\n const typeOptions = [\r\n { label: \"Đang chờ\", value: INFOR_TYPE_ENUM.WAIT },\r\n { label: \"Đã liên hệ\", value: INFOR_TYPE_ENUM.CONTACTED },\r\n { label: \"Hủy\", value: INFOR_TYPE_ENUM.CANCEL },\r\n ];\r\n const InforPurposeOptions = [\r\n { label: InforPurpose.client, value: InforPurposeEnum.CLIENT },\r\n { label: InforPurpose.order, value: InforPurposeEnum.ORDER },\r\n ];\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `name`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `email`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(value, `purpose`)}\r\n options={InforPurposeOptions}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(value, `type`)}\r\n options={typeOptions}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n onChangeValue(e.target.value, `company`)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n onChangeValue(e.target.value, `content`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateContactComponent;\r\n","import { Button, Card, Col, Input, Row, Select } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchContact } from \"../contact.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getContactsAction } from \"../slice\";\r\nimport { INFOR_TYPE_ENUM } from \"../../../utils/enum\";\r\n\r\nconst defaultState: ISearchContact = {\r\n content: \"\",\r\n name: \"\",\r\n phone: \"\",\r\n};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [dataState, dataStateFn] = useAsyncFn(\r\n async (params: ISearchContact) => {\r\n return dispatch(getContactsAction(params) as any);\r\n }\r\n );\r\n\r\n const debounceLoadData = useMemo(\r\n () =>\r\n debounce((query: ISearchContact) => {\r\n return dataStateFn(query);\r\n }, 500),\r\n [dataStateFn]\r\n );\r\n const [state, setState] = useState(_.cloneDeep(defaultState));\r\n //#endregion declare\r\n const onChangeState = (query: ISearchContact) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadData(query);\r\n };\r\n\r\n const typeOptions = [\r\n { label: \"Tất cả\", value: \"\" },\r\n { label: \"Đang chờ\", value: INFOR_TYPE_ENUM.WAIT },\r\n { label: \"Đã liên hệ\", value: INFOR_TYPE_ENUM.CONTACTED },\r\n { label: \"Hủy\", value: INFOR_TYPE_ENUM.CANCEL },\r\n ];\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport {\r\n setStatusModalAction,\r\n deleteContactAction,\r\n getContactsAction,\r\n} from \"./slice\";\r\nimport { IContact } from \"./contact.model\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\nimport InforTypeFormat, {\r\n INFOR_TYPE_ENUM,\r\n InforPurpose,\r\n InforPurposeEnum,\r\n} from \"../../utils/enum\";\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst ContactPage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n currentPage: 1,\r\n });\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isContactCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CONTACT_CREATE\r\n );\r\n const isContactUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CONTACT_UPDATE\r\n );\r\n const isContactList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CONTACT_LIST\r\n );\r\n const isContactDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.CONTACT_DELETE\r\n );\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n render: (_text: string, record: IContact, index: number) => {\r\n return

{index + 1}

;\r\n },\r\n },\r\n {\r\n title: \"Họ và tên\",\r\n key: \"name\",\r\n dataIndex: \"name\",\r\n align: \"center\",\r\n },\r\n\r\n {\r\n title: \"Số điện thoại / email\",\r\n key: \"email\",\r\n dataIndex: \"email\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Mục đích\",\r\n key: \"purpose\",\r\n dataIndex: \"purpose\",\r\n align: \"center\",\r\n render: (_text: string, record: IContact, index: number) => {\r\n const infor =\r\n record.purpose === InforPurposeEnum.ORDER\r\n ? InforPurpose.order\r\n : record.purpose === InforPurposeEnum.CLIENT\r\n ? InforPurpose.client\r\n : \"\";\r\n return <>{infor};\r\n },\r\n },\r\n {\r\n title: \"Tin nhắn\",\r\n key: \"content\",\r\n dataIndex: \"content\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Công ty\",\r\n key: \"company\",\r\n dataIndex: \"company\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Trạng thái\",\r\n key: \"type\",\r\n dataIndex: \"type\",\r\n align: \"center\",\r\n render: (_text: string, record: IContact, index: number) => {\r\n return <>{InforTypeFormat[record?.type || \"\"]};\r\n },\r\n },\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: IContact, index: number) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: IContact, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state: any) => state.screens.contact);\r\n const menu = (item: IContact, index: number) => {\r\n return (\r\n \r\n {isContactUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isContactDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isContactList && dispatch(getContactsAction({}) as any);\r\n }, [dispatch, isContactList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n const _confirmDelete = (item: IContact) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa người dùng không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteContactAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Thông tin

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isContactCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isContactList && (\r\n \r\n \r\n \r\n )}\r\n\r\n {isContactList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContactPage;\r\n","import { useEffect, useState } from \"react\";\r\nimport { update, cloneDeep, keys, get } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { createInforContactAction, getInforContactDetail } from \"../slice\";\r\nimport { InforContact, InforContactAction } from \"../inforContact.model\";\r\nimport { Card, Form, Input, Divider, Button, Row, Col, Switch } from \"antd\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport { MinusCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport { useEffectOnce } from \"react-use\";\r\n\r\nconst CreateInforContactComponent = (props: any) => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const [form] = Form.useForm();\r\n\r\n const [dataAction, setDataAction] = useState({\r\n address: [\"\"],\r\n });\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const addAdress = () => {\r\n const newData = cloneDeep(dataAction);\r\n newData.address?.push(\"\");\r\n setDataAction(newData);\r\n props.setInforContactListIndex(\r\n newData.address,\r\n \"address\",\r\n props.inforContactInit.language,\r\n props.languageDetail,\r\n props.commonPoint\r\n )\r\n };\r\n const onRemoveAddress = (index: number) => {\r\n const newData = cloneDeep(dataAction);\r\n newData.address?.splice(index, 1);\r\n setDataAction(newData);\r\n props.setInforContactListIndex(\r\n newData.address,\r\n \"address\",\r\n props.inforContactInit.language,\r\n props.languageDetail,\r\n props.commonPoint\r\n )\r\n };\r\n const onChangeValue = (valueUp: any, path: string) => {\r\n const newData = cloneDeep({ ...dataAction });\r\n update(newData, path, function (value) {\r\n return valueUp;\r\n });\r\n setDataAction({ ...newData });\r\n props.setInforContactListIndex(\r\n newData.address,\r\n \"address\",\r\n props.inforContactInit.language,\r\n props.languageDetail,\r\n props.commonPoint\r\n )\r\n };\r\n const _onFinish = async () => {\r\n props.onSubmit(props.languageDetail, props.commonPoint);\r\n };\r\n\r\n useEffectOnce(() => {\r\n props.inforContactInit && form.setFieldsValue(props.inforContactInit);\r\n const address = get(props, \"inforContactInit.address\");\r\n if (address && Array.isArray(address)) {\r\n setDataAction({...dataAction, address});\r\n address.map((add: string, index: number) =>\r\n form.setFieldValue(`address.[${index}]`, add)\r\n );\r\n }\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n props.setInforContactListIndex(\r\n e.target.value,\r\n `title`,\r\n props.inforContactInit.language,\r\n props.languageDetail,\r\n props.commonPoint\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.setInforContactListIndex(\r\n e.target.value,\r\n `email`,\r\n props.inforContactInit.language,\r\n props.languageDetail,\r\n props.commonPoint\r\n )\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n props.setInforContactListIndex(\r\n e.target.value,\r\n `hotline`,\r\n props.inforContactInit.language,\r\n props.languageDetail,\r\n props.commonPoint\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n props.onCommonPoint(\r\n !props.commonPoint.isActive,\r\n 'isActive',\r\n props.commonPoint,\r\n props.languageDetail\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {dataAction &&\r\n dataAction.address &&\r\n Array.isArray(dataAction.address) &&\r\n dataAction.address.map(\r\n (item: string, index: number) => (\r\n \r\n
\r\n \r\n onChangeValue(\r\n e.target.value,\r\n `address[${index}]`\r\n )\r\n }\r\n />\r\n onRemoveAddress(index)}\r\n />\r\n
\r\n \r\n )\r\n )}\r\n \r\n Thêm\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CreateInforContactComponent;\r\n","import configServices from \"../../../utils/configServices\";\r\nimport { InforContact, ISearchInforContact } from \"../inforContact.model\";\r\n\r\nexport const createInforContact = async (body: InforContact) => {\r\n const result = await configServices.postService(\"contact\", {\r\n ...body,\r\n isCreateContent: false,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteInforContact = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `contact/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateInforContact = async (id: number, param: any) => {\r\n const result = await configServices.patchService(\r\n `contact/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getInforContact = async (id: number) => {\r\n const result = await configServices.getService(\r\n `contact/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getInforContacts = async (filter?: ISearchInforContact) => {\r\n const result = await configServices.getService(\r\n `contact`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { useState } from \"react\";\r\nimport { cloneDeep, get, set } from \"lodash\";\r\nimport { Tabs } from \"antd\";\r\nimport type { TabsProps } from \"antd\";\r\n\r\nimport \"react-quill/dist/quill.snow.css\";\r\n// import \"../../quill.scss\";\r\nimport { ILanguage } from \"../../language/language.model\";\r\nimport { useEffectOnce } from \"react-use\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport { formatDataObj } from \"../../../utils\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { setLoadingAction } from \"../../../app/commonSlice\";\r\nimport CreateInforContactComponent from \"./createInforContactComponent\";\r\nimport {\r\n createInforContact,\r\n getInforContact,\r\n updateInforContact,\r\n} from \"../services\";\r\nimport { InforContact } from \"../inforContact.model\";\r\n\r\nconst InforContactTabsComponent = (props: any) => {\r\n const history = useHistory();\r\n const { id }: any = useParams();\r\n const dispatch = useDispatch();\r\n const param = new URLSearchParams(props.location.search);\r\n const language = param.get(\"language\") || undefined;\r\n //#region declare\r\n const [commonPoint, setCommonPoint] = useState({});\r\n const [languageDetail, setLanguageDetail] = useState([]);\r\n const [items, setItems] = useState([]);\r\n //#region useEffect\r\n const setInforContactListIndex = (\r\n value: any,\r\n path: string,\r\n lang: string,\r\n languageDetails: InforContact[],\r\n cateDetails: InforContact\r\n ) => {\r\n const newCate = cloneDeep(cateDetails);\r\n\r\n if (newCate && lang === newCate.language) {\r\n set(newCate, path, value);\r\n }\r\n\r\n let languageDetailNew: InforContact[] = cloneDeep(languageDetails);\r\n if (path === \"isActive\") {\r\n languageDetailNew = languageDetailNew.map((con) => ({\r\n ...con,\r\n isActive: value,\r\n }));\r\n } else {\r\n const index = languageDetailNew.map((m) => m.language).indexOf(lang);\r\n if (index > -1) {\r\n set(languageDetailNew, `[${index}].${path}`, value);\r\n setLanguageDetail(languageDetailNew);\r\n } else {\r\n const newCateLang = cloneDeep({ ...commonPoint, language: lang });\r\n newCateLang[path] = value;\r\n languageDetailNew.push(newCateLang);\r\n }\r\n }\r\n setLanguageDetail(languageDetailNew);\r\n refreshItem(languageDetailNew, newCate);\r\n };\r\n\r\n const onCommonPoint = (\r\n value: any,\r\n path: string,\r\n cateDetails?: InforContact,\r\n languageDetails?: InforContact[]\r\n ) => {\r\n const newCate: InforContact = cloneDeep(cateDetails) || { title: \"\" };\r\n set(newCate, path, value);\r\n if (languageDetails) setLanguageDetail(languageDetails);\r\n refreshItem(languageDetails, newCate);\r\n };\r\n\r\n const onSubmit = async (\r\n languageDetails: InforContact[],\r\n cateDetails: InforContact\r\n ) => {\r\n const languages = languageDetails.filter((f) => f.title);\r\n const update = {\r\n ...cateDetails,\r\n languages: languages.map((m) => ({\r\n ...m,\r\n id,\r\n })),\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (!id) {\r\n await createInforContact(formatDataObj(update));\r\n } else {\r\n await updateInforContact(id, update);\r\n }\r\n dispatch(setLoadingAction(false));\r\n history.goBack();\r\n };\r\n\r\n const refreshItem = (\r\n listLang?: InforContact[],\r\n cateDetail?: InforContact\r\n ) => {\r\n const languageLocal = localStorage.getItem(\"language\");\r\n const languages: ILanguage[] = languageLocal\r\n ? JSON.parse(languageLocal)\r\n : [];\r\n function compare(a: any, b: any) {\r\n if (a.isDefault > b.isDefault) {\r\n return -1;\r\n }\r\n if (a.isDefault < b.isDefault) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n setLanguageDetail(listLang || []);\r\n const items: TabsProps[\"items\"] = languages\r\n .sort((a, b) => compare(a, b))\r\n .map((lang, index) => {\r\n const langs = listLang?.find((s) => s.language === lang.code);\r\n if (!id && lang.isDefault && cateDetail)\r\n cateDetail[\"language\"] = lang.code;\r\n const inforContactInit: InforContact = langs\r\n ? {\r\n ...cateDetail,\r\n title: langs.title,\r\n email: langs.email,\r\n hotline: langs.hotline,\r\n address: langs.address,\r\n language: lang.code,\r\n isDefault: lang.isDefault,\r\n }\r\n : {\r\n ...cateDetail,\r\n language: lang.code,\r\n isDefault: lang.isDefault,\r\n title: \"\",\r\n email: \"\",\r\n hotline: \"\",\r\n address: [],\r\n };\r\n // listLang?.push(inforContactInit);\r\n return {\r\n key: `${lang.code}`,\r\n label: lang.name,\r\n id: lang.code,\r\n children: (\r\n \r\n ),\r\n };\r\n });\r\n setItems(items);\r\n };\r\n\r\n useEffectOnce(() => {\r\n let inforDetail;\r\n const detail = async () => {\r\n if (id) {\r\n const inforResponse = await getInforContact(id).catch((e) => null);\r\n inforDetail = get(inforResponse, \"data\");\r\n if (inforDetail) {\r\n const inforContact = inforDetail as InforContact;\r\n const languages: InforContact[] = inforContact.languages || [];\r\n const checkLang = languages.find(\r\n (s) => s.language === inforContact.language\r\n );\r\n if (!checkLang) {\r\n const coppyCate = cloneDeep(inforContact);\r\n delete coppyCate.languages;\r\n languages.push(coppyCate);\r\n }\r\n const languageLocal = localStorage.getItem(\"language\");\r\n const languagesSystem: ILanguage[] = languageLocal\r\n ? JSON.parse(languageLocal)\r\n : [];\r\n\r\n languagesSystem.map((lang) => {\r\n const isCheck = languages.some((s) => s.language === lang.code);\r\n if (!isCheck)\r\n languages.push({\r\n language: lang.code,\r\n isDefault: lang.isDefault,\r\n isActive: inforContact.isActive,\r\n title: \"\",\r\n email: \"\",\r\n hotline: \"\",\r\n address: [],\r\n });\r\n });\r\n refreshItem(languages, inforContact);\r\n }\r\n } else {\r\n refreshItem([], { title: \"\", isActive: false });\r\n }\r\n };\r\n detail();\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default InforContactTabsComponent;\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\nimport { RootState } from \"../../app/store\";\r\nimport { InforContactState } from \"./propState\";\r\nimport {\r\n createInforContact,\r\n deleteInforContact,\r\n updateInforContact,\r\n getInforContacts,\r\n getInforContact,\r\n} from \"./services\";\r\nimport { InforContact, ISearchInforContact } from \"./inforContact.model\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: InforContactState = {\r\n data: [],\r\n currentPage: 1,\r\n detail: {\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getInforContactsAction = createAsyncThunk(\r\n \"contacts\",\r\n async (filter: ISearchInforContact, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getInforContacts(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setInforContactAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getInforContactDetail = createAsyncThunk(\r\n \"contact/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n const state = thunkAPI.getState() as RootState;\r\n const response: any = await getInforContact(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createInforContactAction = createAsyncThunk(\r\n \"contact/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const banner = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createInforContact(banner);\r\n } else {\r\n await updateInforContact(payload.id, banner);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n // dispatch(getBannersAction());\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteInforContactAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteInforContact(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getInforContactsAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const contactSlice = createSlice({\r\n name: \"contact\",\r\n initialState,\r\n reducers: {\r\n setInforContactAction: (\r\n state: InforContactState,\r\n action: PayloadAction\r\n ) => {\r\n // console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: InforContactState,\r\n action: PayloadAction\r\n ) => {\r\n const payload: any = action.payload;\r\n delete payload['password']\r\n state.detail = payload;\r\n },\r\n setStatusModalAction: (\r\n state: InforContactState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: InforContact | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setInforContactAction, setStatusModalAction, setDetailAction } =\r\ncontactSlice.actions;\r\n\r\nexport default contactSlice.reducer;\r\n","import { Button, Card, Col, Input, Row, Select } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchInforContact } from \"../inforContact.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getInforContactsAction } from \"../slice\";\r\nimport { INFOR_TYPE_ENUM } from \"../../../utils/enum\";\r\n\r\nconst defaultState: ISearchInforContact = {};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [dataState, dataStateFn] = useAsyncFn(\r\n async (params: ISearchInforContact) => {\r\n return dispatch(getInforContactsAction(params) as any);\r\n }\r\n );\r\n\r\n const debounceLoadData = useMemo(\r\n () =>\r\n debounce((query: ISearchInforContact) => {\r\n return dataStateFn(query);\r\n }, 500),\r\n [dataStateFn]\r\n );\r\n const [state, setState] = useState(_.cloneDeep(defaultState));\r\n //#endregion declare\r\n const onChangeState = (query: ISearchInforContact) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadData(query);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n CheckOutlined,\r\n CloseOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { deleteInforContactAction, getInforContactsAction } from \"./slice\";\r\nimport { InforContact } from \"./inforContact.model\";\r\nimport { formatDate, isCheckPermisson } from \"../../utils\";\r\n\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst ContactPage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n currentPage: 1,\r\n });\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isInforContactCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.INFOR_CONTACT_CREATE\r\n );\r\n const isInforContactUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.INFOR_CONTACT_UPDATE\r\n );\r\n const isInforContactList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.INFOR_CONTACT_LIST\r\n );\r\n const isInforContactDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.INFOR_CONTACT_DELETE\r\n );\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n render: (_text: string, record: InforContact, index: number) => {\r\n return

{ index + 1}

\r\n }\r\n },\r\n {\r\n title: \"Tên\",\r\n key: \"title\",\r\n dataIndex: \"title\",\r\n align: \"center\",\r\n },\r\n\r\n {\r\n title: \"Email\",\r\n key: \"email\",\r\n dataIndex: \"email\",\r\n align: \"center\",\r\n },\r\n\r\n {\r\n title: \"Hotline\",\r\n key: \"hotline\",\r\n dataIndex: \"hotline\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Địa chỉ\",\r\n key: \"address\",\r\n dataIndex: \"address\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Xuất bản\",\r\n key: \"isActive\",\r\n dataIndex: \"isActive\",\r\n align: \"center\",\r\n render: (_text: string, record: InforContact, index: number) => {\r\n return (\r\n <>\r\n {record.isActive ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n\r\n {\r\n title: \"Ngày tạo\",\r\n key: \"createdAt\",\r\n dataIndex: \"createdAt\",\r\n align: \"center\",\r\n render: (_text: string, record: InforContact, index: number) => {\r\n return <>{formatDate(record.updatedAt)};\r\n },\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: InforContact, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state) => state.screens.inforContact);\r\n const menu = (item: InforContact, index: number) => {\r\n return (\r\n \r\n {isInforContactUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isInforContactDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isInforContactList && dispatch(getInforContactsAction({}) as any);\r\n }, [dispatch, isInforContactList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n const _confirmDelete = (item: InforContact) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa người dùng không?`,\r\n icon: ,\r\n content: item.title,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteInforContactAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Địa chỉ

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isInforContactCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isInforContactList && (\r\n \r\n \r\n \r\n )}\r\n\r\n {isInforContactList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContactPage;\r\n","import configServices from \"../../../utils/configServices\";\r\nimport { IRecruiment, ISearchRecruiment, IRecruimentAction } from \"../recruiment.model\";\r\n\r\nexport const createRecruiment = async (body: IRecruimentAction) => {\r\n const result = await configServices.postService(\"recruiment\", {\r\n ...body,\r\n });\r\n return result;\r\n};\r\n\r\nexport const deleteRecruiment = async (param: number) => {\r\n const result = await configServices.deleteService(\r\n `recruiment/${param}`\r\n );\r\n return result;\r\n};\r\n\r\nexport const updateRecruiment = async (id: number, param: IRecruimentAction) => {\r\n const result = await configServices.patchService(\r\n `recruiment/${id}`,\r\n { ...param, isCreateContent: false }\r\n );\r\n return result;\r\n};\r\n\r\nexport const getRecruiment = async (id: number) => {\r\n const result = await configServices.getService(\r\n `recruiment/${id}`,\r\n null,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n\r\nexport const getRecruiments = async (filter?: ISearchRecruiment) => {\r\n const result = await configServices.getService(\r\n `recruiment`,\r\n filter,\r\n null,\r\n true\r\n );\r\n return result;\r\n};\r\n","import { createAsyncThunk, createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { setLoadingAction } from \"../../app/commonSlice\";\r\n// import { RootState } from \"../../app/store\";\r\nimport { IRecruimentState } from \"./propState\";\r\nimport {\r\n createRecruiment,\r\n deleteRecruiment,\r\n updateRecruiment,\r\n getRecruiments,\r\n getRecruiment,\r\n} from \"./services\";\r\nimport { IRecruiment, ISearchRecruiment } from \"./recruiment.model\";\r\nimport { defaultFilter } from \"../../utils\";\r\n\r\nconst initialState: IRecruimentState = {\r\n data: [],\r\n currentPage: 1,\r\n detail: {\r\n id: 1,\r\n name: \"\",\r\n },\r\n modal: {\r\n isOpenModal: false,\r\n item: null,\r\n type: \"addNew\",\r\n },\r\n};\r\n\r\nexport const getRecruimentsAction = createAsyncThunk(\r\n \"languages\",\r\n async (filter: ISearchRecruiment, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const state = thunkAPI.getState() as RootState;\r\n const response: any = await getRecruiments(defaultFilter({...filter}));\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setPostAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const getRecruimentDetail = createAsyncThunk(\r\n \"language/detail\",\r\n async (payload: { id: number }, thunkAPI) => {\r\n try {\r\n thunkAPI.dispatch(setLoadingAction(true));\r\n // const state = thunkAPI.getState() as RootState;\r\n const response: any = await getRecruiment(payload.id);\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n thunkAPI.dispatch(setDetailAction(response?.data || []));\r\n } catch (error) {\r\n thunkAPI.dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const createRecruimentAction = createAsyncThunk(\r\n \"language/create\",\r\n async (payload: any, { dispatch }) => {\r\n try {\r\n const body = {\r\n ...payload.body,\r\n };\r\n dispatch(setLoadingAction(true));\r\n if (payload.type === \"addNew\") {\r\n await createRecruiment(body);\r\n } else {\r\n await updateRecruiment(payload.id, body);\r\n }\r\n dispatch(setLoadingAction(false));\r\n dispatch(\r\n setStatusModalAction({ item: null, isOpenModal: false, type: \"addNew\" })\r\n );\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const deleteRecruimentAction = createAsyncThunk(\r\n \"course/deleteCourseAction\",\r\n async (payload: { id: number }, { dispatch }) => {\r\n try {\r\n dispatch(setLoadingAction(true));\r\n await deleteRecruiment(payload.id);\r\n dispatch(setLoadingAction(false));\r\n dispatch(getRecruimentsAction({}));\r\n } catch (error) {\r\n dispatch(setLoadingAction(false));\r\n }\r\n }\r\n);\r\n\r\nexport const recruimentSlice = createSlice({\r\n name: \"language\",\r\n initialState,\r\n reducers: {\r\n setPostAction: (\r\n state: IRecruimentState,\r\n action: PayloadAction\r\n ) => {\r\n console.log(\"action.payload :>> \", action.payload);\r\n state.data = action.payload;\r\n state.currentPage = 1;\r\n },\r\n setDetailAction: (\r\n state: IRecruimentState,\r\n action: PayloadAction\r\n ) => {\r\n const payload: any = action.payload;\r\n delete payload['password']\r\n state.detail = payload;\r\n },\r\n setStatusModalAction: (\r\n state: IRecruimentState,\r\n action: PayloadAction<{\r\n isOpenModal: boolean;\r\n type: \"addNew\" | \"update\";\r\n item: IRecruiment | null;\r\n }>\r\n ) => {\r\n state.modal = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setPostAction, setStatusModalAction, setDetailAction } =\r\nrecruimentSlice.actions;\r\n\r\nexport default recruimentSlice.reducer;\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Notify = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n className = props.className,\n _props$duration = props.duration,\n duration = _props$duration === void 0 ? 4.5 : _props$duration,\n eventKey = props.eventKey,\n content = props.content,\n closable = props.closable,\n _props$closeIcon = props.closeIcon,\n closeIcon = _props$closeIcon === void 0 ? 'x' : _props$closeIcon,\n divProps = props.props,\n onClick = props.onClick,\n onNoticeClose = props.onNoticeClose,\n times = props.times;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hovering = _React$useState2[0],\n setHovering = _React$useState2[1];\n // ======================== Close =========================\n var onInternalClose = function onInternalClose() {\n onNoticeClose(eventKey);\n };\n // ======================== Effect ========================\n React.useEffect(function () {\n if (!hovering && duration > 0) {\n var timeout = setTimeout(function () {\n onInternalClose();\n }, duration * 1000);\n return function () {\n clearTimeout(timeout);\n };\n }\n }, [duration, hovering, times]);\n // ======================== Render ========================\n var noticePrefixCls = \"\".concat(prefixCls, \"-notice\");\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n ref: ref,\n className: classNames(noticePrefixCls, className, _defineProperty({}, \"\".concat(noticePrefixCls, \"-closable\"), closable)),\n style: style,\n onMouseEnter: function onMouseEnter() {\n setHovering(true);\n },\n onMouseLeave: function onMouseLeave() {\n setHovering(false);\n },\n onClick: onClick\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(noticePrefixCls, \"-content\")\n }, content), closable && /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n className: \"\".concat(noticePrefixCls, \"-close\"),\n onClick: function onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n onInternalClose();\n }\n }, closeIcon));\n});\nexport default Notify;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { CSSMotionList } from 'rc-motion';\nimport classNames from 'classnames';\nimport Notice from './Notice';\n// ant-notification ant-notification-topRight\nvar Notifications = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-notification' : _props$prefixCls,\n container = props.container,\n motion = props.motion,\n maxCount = props.maxCount,\n className = props.className,\n style = props.style,\n onAllRemoved = props.onAllRemoved;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n configList = _React$useState2[0],\n setConfigList = _React$useState2[1];\n // ======================== Close =========================\n var onNoticeClose = function onNoticeClose(key) {\n var _config$onClose;\n // Trigger close event\n var config = configList.find(function (item) {\n return item.key === key;\n });\n config === null || config === void 0 ? void 0 : (_config$onClose = config.onClose) === null || _config$onClose === void 0 ? void 0 : _config$onClose.call(config);\n setConfigList(function (list) {\n return list.filter(function (item) {\n return item.key !== key;\n });\n });\n };\n // ========================= Refs =========================\n React.useImperativeHandle(ref, function () {\n return {\n open: function open(config) {\n setConfigList(function (list) {\n var clone = _toConsumableArray(list);\n // Replace if exist\n var index = clone.findIndex(function (item) {\n return item.key === config.key;\n });\n var innerConfig = _objectSpread({}, config);\n if (index >= 0) {\n var _list$index;\n innerConfig.times = (((_list$index = list[index]) === null || _list$index === void 0 ? void 0 : _list$index.times) || 0) + 1;\n clone[index] = innerConfig;\n } else {\n innerConfig.times = 0;\n clone.push(innerConfig);\n }\n if (maxCount > 0 && clone.length > maxCount) {\n clone = clone.slice(-maxCount);\n }\n return clone;\n });\n },\n close: function close(key) {\n onNoticeClose(key);\n },\n destroy: function destroy() {\n setConfigList([]);\n }\n };\n });\n // ====================== Placements ======================\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n placements = _React$useState4[0],\n setPlacements = _React$useState4[1];\n React.useEffect(function () {\n var nextPlacements = {};\n configList.forEach(function (config) {\n var _config$placement = config.placement,\n placement = _config$placement === void 0 ? 'topRight' : _config$placement;\n if (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n nextPlacements[placement].push(config);\n }\n });\n // Fill exist placements to avoid empty list causing remove without motion\n Object.keys(placements).forEach(function (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n });\n setPlacements(nextPlacements);\n }, [configList]);\n // Clean up container if all notices fade out\n var onAllNoticeRemoved = function onAllNoticeRemoved(placement) {\n setPlacements(function (originPlacements) {\n var clone = _objectSpread({}, originPlacements);\n var list = clone[placement] || [];\n if (!list.length) {\n delete clone[placement];\n }\n return clone;\n });\n };\n // Effect tell that placements is empty now\n var emptyRef = React.useRef(false);\n React.useEffect(function () {\n if (Object.keys(placements).length > 0) {\n emptyRef.current = true;\n } else if (emptyRef.current) {\n // Trigger only when from exist to empty\n onAllRemoved === null || onAllRemoved === void 0 ? void 0 : onAllRemoved();\n emptyRef.current = false;\n }\n }, [placements]);\n // ======================== Render ========================\n if (!container) {\n return null;\n }\n var placementList = Object.keys(placements);\n return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(React.Fragment, null, placementList.map(function (placement) {\n var placementConfigList = placements[placement];\n var keys = placementConfigList.map(function (config) {\n return {\n config: config,\n key: config.key\n };\n });\n var placementMotion = typeof motion === 'function' ? motion(placement) : motion;\n return /*#__PURE__*/React.createElement(CSSMotionList, _extends({\n key: placement,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), className === null || className === void 0 ? void 0 : className(placement)),\n style: style === null || style === void 0 ? void 0 : style(placement),\n keys: keys,\n motionAppear: true\n }, placementMotion, {\n onAllRemoved: function onAllRemoved() {\n onAllNoticeRemoved(placement);\n }\n }), function (_ref, nodeRef) {\n var config = _ref.config,\n motionClassName = _ref.className,\n motionStyle = _ref.style;\n var key = config.key,\n times = config.times;\n var configClassName = config.className,\n configStyle = config.style;\n return /*#__PURE__*/React.createElement(Notice, _extends({}, config, {\n ref: nodeRef,\n prefixCls: prefixCls,\n className: classNames(motionClassName, configClassName),\n style: _objectSpread(_objectSpread({}, motionStyle), configStyle),\n times: times,\n key: key,\n eventKey: key,\n onNoticeClose: onNoticeClose\n }));\n });\n })), container);\n});\nif (process.env.NODE_ENV !== 'production') {\n Notifications.displayName = 'Notifications';\n}\nexport default Notifications;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"getContainer\", \"motion\", \"prefixCls\", \"maxCount\", \"className\", \"style\", \"onAllRemoved\"];\nimport * as React from 'react';\nimport Notifications from './Notifications';\nvar defaultGetContainer = function defaultGetContainer() {\n return document.body;\n};\nvar uniqueKey = 0;\nfunction mergeConfig() {\n var clone = {};\n for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n objList[_key] = arguments[_key];\n }\n objList.forEach(function (obj) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (val !== undefined) {\n clone[key] = val;\n }\n });\n }\n });\n return clone;\n}\nexport default function useNotification() {\n var rootConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _rootConfig$getContai = rootConfig.getContainer,\n getContainer = _rootConfig$getContai === void 0 ? defaultGetContainer : _rootConfig$getContai,\n motion = rootConfig.motion,\n prefixCls = rootConfig.prefixCls,\n maxCount = rootConfig.maxCount,\n className = rootConfig.className,\n style = rootConfig.style,\n onAllRemoved = rootConfig.onAllRemoved,\n shareConfig = _objectWithoutProperties(rootConfig, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n container = _React$useState2[0],\n setContainer = _React$useState2[1];\n var notificationsRef = React.useRef();\n var contextHolder = /*#__PURE__*/React.createElement(Notifications, {\n container: container,\n ref: notificationsRef,\n prefixCls: prefixCls,\n motion: motion,\n maxCount: maxCount,\n className: className,\n style: style,\n onAllRemoved: onAllRemoved\n });\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n taskQueue = _React$useState4[0],\n setTaskQueue = _React$useState4[1];\n // ========================= Refs =========================\n var api = React.useMemo(function () {\n return {\n open: function open(config) {\n var mergedConfig = mergeConfig(shareConfig, config);\n if (mergedConfig.key === null || mergedConfig.key === undefined) {\n mergedConfig.key = \"rc-notification-\".concat(uniqueKey);\n uniqueKey += 1;\n }\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'open',\n config: mergedConfig\n }]);\n });\n },\n close: function close(key) {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'close',\n key: key\n }]);\n });\n },\n destroy: function destroy() {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'destroy'\n }]);\n });\n }\n };\n }, []);\n // ======================= Container ======================\n // React 18 should all in effect that we will check container in each render\n // Which means getContainer should be stable.\n React.useEffect(function () {\n setContainer(getContainer());\n });\n // ======================== Effect ========================\n React.useEffect(function () {\n // Flush task when node ready\n if (notificationsRef.current && taskQueue.length) {\n taskQueue.forEach(function (task) {\n switch (task.type) {\n case 'open':\n notificationsRef.current.open(task.config);\n break;\n case 'close':\n notificationsRef.current.close(task.key);\n break;\n case 'destroy':\n notificationsRef.current.destroy();\n break;\n }\n });\n setTaskQueue([]);\n }\n }, [taskQueue]);\n // ======================== Return ========================\n return [api, contextHolder];\n}","// deps-lint-skip-all\nimport { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst genMessageStyle = token => {\n const {\n componentCls,\n iconCls,\n boxShadowSecondary,\n colorBgElevated,\n colorSuccess,\n colorError,\n colorWarning,\n colorInfo,\n fontSizeLG,\n motionEaseInOutCirc,\n motionDurationSlow,\n marginXS,\n paddingXS,\n borderRadiusLG,\n zIndexPopup,\n // Custom token\n messageNoticeContentPadding\n } = token;\n const messageMoveIn = new Keyframes('MessageMoveIn', {\n '0%': {\n padding: 0,\n transform: 'translateY(-100%)',\n opacity: 0\n },\n '100%': {\n padding: paddingXS,\n transform: 'translateY(0)',\n opacity: 1\n }\n });\n const messageMoveOut = new Keyframes('MessageMoveOut', {\n '0%': {\n maxHeight: token.height,\n padding: paddingXS,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n padding: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'fixed',\n top: marginXS,\n width: '100%',\n pointerEvents: 'none',\n zIndex: zIndexPopup,\n [`${componentCls}-move-up`]: {\n animationFillMode: 'forwards'\n },\n [`\n ${componentCls}-move-up-appear,\n ${componentCls}-move-up-enter\n `]: {\n animationName: messageMoveIn,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`\n ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n `]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-move-up-leave`]: {\n animationName: messageMoveOut,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n animationPlayState: 'running'\n },\n '&-rtl': {\n direction: 'rtl',\n span: {\n direction: 'rtl'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [`${componentCls}-notice`]: {\n padding: paddingXS,\n textAlign: 'center',\n [`${componentCls}-custom-content > ${iconCls}`]: {\n verticalAlign: 'text-bottom',\n marginInlineEnd: marginXS,\n fontSize: fontSizeLG\n },\n [`${componentCls}-notice-content`]: {\n display: 'inline-block',\n padding: messageNoticeContentPadding,\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n pointerEvents: 'all'\n },\n [`${componentCls}-success > ${iconCls}`]: {\n color: colorSuccess\n },\n [`${componentCls}-error > ${iconCls}`]: {\n color: colorError\n },\n [`${componentCls}-warning > ${iconCls}`]: {\n color: colorWarning\n },\n [`\n ${componentCls}-info > ${iconCls},\n ${componentCls}-loading > ${iconCls}`]: {\n color: colorInfo\n }\n }\n },\n // ============================= Pure =============================\n {\n [`${componentCls}-notice-pure-panel`]: {\n padding: 0,\n textAlign: 'start'\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Message', token => {\n // Gen-style functions here\n const combinedToken = mergeToken(token, {\n messageNoticeContentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n });\n return [genMessageStyle(combinedToken)];\n}, token => ({\n height: 150,\n zIndexPopup: token.zIndexPopupBase + 10\n}));","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport { Notice } from 'rc-notification';\nimport classNames from 'classnames';\nimport useStyle from './style';\nimport { ConfigContext } from '../config-provider';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport function PureContent(_ref) {\n let {\n prefixCls,\n type,\n icon,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-custom-content`, `${prefixCls}-${type}`)\n }, icon || TypeIcon[type], /*#__PURE__*/React.createElement(\"span\", null, children));\n}\n/** @private Internal Component. Do not use in your production. */\nexport default function PurePanel(props) {\n const {\n prefixCls: staticPrefixCls,\n className,\n type,\n icon,\n content\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"icon\", \"content\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n return /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classNames(className, hashId, `${prefixCls}-notice-pure-panel`),\n eventKey: \"pure\",\n duration: null,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content)\n }));\n}","export function getMotion(prefixCls, transitionName) {\n return {\n motionName: transitionName !== null && transitionName !== void 0 ? transitionName : `${prefixCls}-move-up`\n };\n}\n/** Wrap message open with promise like function */\nexport function wrapPromiseFn(openFn) {\n let closeFn;\n const closePromise = new Promise(resolve => {\n closeFn = openFn(() => {\n resolve(true);\n });\n });\n const result = () => {\n closeFn === null || closeFn === void 0 ? void 0 : closeFn();\n };\n result.then = (filled, rejected) => closePromise.then(filled, rejected);\n result.promise = closePromise;\n return result;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport { useNotification as useRcNotification } from 'rc-notification';\nimport classNames from 'classnames';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { getMotion, wrapPromiseFn } from './util';\nimport warning from '../_util/warning';\nimport { PureContent } from './PurePanel';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n duration = DEFAULT_DURATION,\n rtl,\n transitionName,\n onAllRemoved\n } = props;\n const {\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Style ===============================\n const getStyle = () => ({\n left: '50%',\n transform: 'translateX(-50%)',\n top: top !== null && top !== void 0 ? top : DEFAULT_OFFSET\n });\n const getClassName = () => classNames(hashId, rtl ? `${prefixCls}-rtl` : '');\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls, transitionName);\n // ============================ Close Icon =============================\n const mergedCloseIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: false,\n closeIcon: mergedCloseIcon,\n duration,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n onAllRemoved\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n hashId\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(notificationConfig) {\n const holderRef = React.useRef(null);\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> close\n const close = key => {\n var _a;\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n };\n // >>> Open\n const open = config => {\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Message', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n const fakeResult = () => {};\n fakeResult.then = () => {};\n return fakeResult;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n content,\n icon,\n type,\n key,\n className,\n onClose\n } = config,\n restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"className\", \"onClose\"]);\n let mergedKey = key;\n if (mergedKey === undefined || mergedKey === null) {\n keyIndex += 1;\n mergedKey = `antd-message-${keyIndex}`;\n }\n return wrapPromiseFn(resolve => {\n originOpen(Object.assign(Object.assign({}, restConfig), {\n key: mergedKey,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content),\n placement: 'top',\n className: classNames(type && `${noticePrefixCls}-${type}`, hashId, className),\n onClose: () => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n resolve();\n }\n }));\n // Return close function\n return () => {\n close(mergedKey);\n };\n });\n };\n // >>> destroy\n const destroy = key => {\n var _a;\n if (key !== undefined) {\n close(key);\n } else {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['info', 'success', 'warning', 'error', 'loading'];\n keys.forEach(type => {\n const typeOpen = (jointContent, duration, onClose) => {\n let config;\n if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n config = jointContent;\n } else {\n config = {\n content: jointContent\n };\n }\n // Params\n let mergedDuration;\n let mergedOnClose;\n if (typeof duration === 'function') {\n mergedOnClose = duration;\n } else {\n mergedDuration = duration;\n mergedOnClose = onClose;\n }\n const mergedConfig = Object.assign(Object.assign({\n onClose: mergedOnClose,\n duration: mergedDuration\n }, config), {\n type\n });\n return open(mergedConfig);\n };\n clone[type] = typeOpen;\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"message-holder\"\n }, notificationConfig, {\n ref: holderRef\n }))];\n}\nexport default function useMessage(notificationConfig) {\n return useInternalMessage(notificationConfig);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { render } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useMessage, { useInternalMessage } from './useMessage';\nimport { wrapPromiseFn } from './util';\nconst methods = ['success', 'info', 'warning', 'error', 'loading'];\nlet message = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n prefixCls: globalPrefixCls,\n getContainer: globalGetContainer,\n duration,\n rtl,\n maxCount,\n top\n } = defaultGlobalConfig;\n const mergedPrefixCls = globalPrefixCls !== null && globalPrefixCls !== void 0 ? globalPrefixCls : globalConfig().getPrefixCls('message');\n const mergedContainer = (globalGetContainer === null || globalGetContainer === void 0 ? void 0 : globalGetContainer()) || document.body;\n return {\n prefixCls: mergedPrefixCls,\n container: mergedContainer,\n duration,\n rtl,\n maxCount,\n top\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((_, ref) => {\n const initializeMeassgConfig = () => {\n const {\n prefixCls,\n container,\n maxCount,\n duration,\n rtl,\n top\n } = getGlobalContext();\n return {\n prefixCls,\n getContainer: () => container,\n maxCount,\n duration,\n rtl,\n top\n };\n };\n const [meassgConfig, setMeassgConfig] = React.useState(initializeMeassgConfig);\n const [api, holder] = useInternalMessage(meassgConfig);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const sync = () => {\n setMeassgConfig(initializeMeassgConfig);\n };\n React.useEffect(sync, []);\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls\n }, holder);\n});\nfunction flushNotice() {\n if (!message) {\n const holderFragment = document.createDocumentFragment();\n const newMessage = {\n fragment: holderFragment\n };\n message = newMessage;\n // Delay render to avoid sync issue\n act(() => {\n render( /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n // React 18 test env will throw if call immediately in ref\n Promise.resolve().then(() => {\n if (!newMessage.instance && instance) {\n newMessage.instance = instance;\n newMessage.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!message.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n const {\n type,\n skipped\n } = task;\n // Only `skipped` when user call notice but cancel it immediately\n // and instance not ready\n if (!skipped) {\n switch (type) {\n case 'open':\n {\n act(() => {\n const closeFn = message.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n break;\n }\n case 'destroy':\n act(() => {\n message === null || message === void 0 ? void 0 : message.instance.destroy(task.key);\n });\n break;\n // Other type open\n default:\n {\n act(() => {\n var _message$instance;\n const closeFn = (_message$instance = message.instance)[type].apply(_message$instance, _toConsumableArray(task.args));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n }\n }\n }\n });\n // Clean up\n taskQueue = [];\n}\nfunction setMessageGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = message === null || message === void 0 ? void 0 : message.sync) === null || _a === void 0 ? void 0 : _a.call(message);\n });\n}\nfunction open(config) {\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type: 'open',\n config,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction typeOpen(type, args) {\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type,\n args,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction destroy(key) {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n}\nconst baseStaticMethods = {\n open,\n destroy,\n config: setMessageGlobalConfig,\n useMessage,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return typeOpen(type, args);\n };\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @private Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\n/** @private Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n actDestroy = () => {\n message = null;\n };\n}\nexport default staticMethods;","import dayjs from 'dayjs';\nimport { noteOnce } from \"rc-util/es/warning\";\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';\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(function (o, c) {\n // todo support Wo (ISO week)\n var proto = c.prototype;\n var oldFormat = proto.format;\n\n proto.format = function f(formatStr) {\n var str = (formatStr || '').replace('Wo', 'wo');\n return oldFormat.bind(this)(str);\n };\n});\nvar localeMap = {\n // ar_EG:\n // az_AZ:\n // bg_BG:\n bn_BD: 'bn-bd',\n by_BY: 'be',\n // ca_ES:\n // cs_CZ:\n // da_DK:\n // de_DE:\n // el_GR:\n en_GB: 'en-gb',\n en_US: 'en',\n // es_ES:\n // et_EE:\n // fa_IR:\n // fi_FI:\n fr_BE: 'fr',\n // todo: dayjs has no fr_BE locale, use fr at present\n fr_CA: 'fr-ca',\n // fr_FR:\n // ga_IE:\n // gl_ES:\n // he_IL:\n // hi_IN:\n // hr_HR:\n // hu_HU:\n hy_AM: 'hy-am',\n // id_ID:\n // is_IS:\n // it_IT:\n // ja_JP:\n // ka_GE:\n // kk_KZ:\n // km_KH:\n kmr_IQ: 'ku',\n // kn_IN:\n // ko_KR:\n // ku_IQ: // previous ku in antd\n // lt_LT:\n // lv_LV:\n // mk_MK:\n // ml_IN:\n // mn_MN:\n // ms_MY:\n // nb_NO:\n // ne_NP:\n nl_BE: 'nl-be',\n // nl_NL:\n // pl_PL:\n pt_BR: 'pt-br',\n // pt_PT:\n // ro_RO:\n // ru_RU:\n // sk_SK:\n // sl_SI:\n // sr_RS:\n // sv_SE:\n // ta_IN:\n // th_TH:\n // tr_TR:\n // uk_UA:\n // ur_PK:\n // vi_VN:\n zh_CN: 'zh-cn',\n zh_HK: 'zh-hk',\n zh_TW: 'zh-tw'\n};\n\nvar parseLocale = function parseLocale(locale) {\n var mapLocale = localeMap[locale];\n return mapLocale || locale.split('_')[0];\n};\n\nvar parseNoMatchNotice = function parseNoMatchNotice() {\n /* istanbul ignore next */\n noteOnce(false, 'Not match any format. Please help to fire a issue about this.');\n};\n\nvar generateConfig = {\n // get\n getNow: function getNow() {\n return dayjs();\n },\n getFixedDate: function getFixedDate(string) {\n return dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']);\n },\n getEndDate: function getEndDate(date) {\n return date.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.locale('en');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n // set\n addYear: function addYear(date, diff) {\n return date.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n return date.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n return date.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n return date.year(year);\n },\n setMonth: function setMonth(date, month) {\n return date.month(month);\n },\n setDate: function setDate(date, num) {\n return date.date(num);\n },\n setHour: function setHour(date, hour) {\n return date.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n return date.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n return date.second(second);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n return date.locale(parseLocale(locale)).weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n return date.locale(parseLocale(locale)).week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n return date.locale(parseLocale(locale)).format(_format);\n },\n parse: function parse(locale, text, formats) {\n var localeStr = parseLocale(locale);\n\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n\n if (format.includes('wo') || format.includes('Wo')) {\n // parse Wo\n var year = formatText.split('-')[0];\n var weekStr = formatText.split('-')[1];\n var firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);\n\n for (var j = 0; j <= 52; j += 1) {\n var nextWeek = firstWeek.add(j, 'week');\n\n if (nextWeek.format('Wo') === weekStr) {\n return nextWeek;\n }\n }\n\n parseNoMatchNotice();\n return null;\n }\n\n var date = dayjs(formatText, format, true).locale(localeStr);\n\n if (date.isValid()) {\n return date;\n }\n }\n\n if (text) {\n parseNoMatchNotice();\n }\n\n return null;\n }\n }\n};\nexport default generateConfig;","// This icon file is generated automatically.\nvar CalendarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\" } }] }, \"name\": \"calendar\", \"theme\": \"outlined\" };\nexport default CalendarOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CalendarOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalendarOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CalendarOutlined = function CalendarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CalendarOutlinedSvg\n }));\n};\nCalendarOutlined.displayName = 'CalendarOutlined';\nexport default /*#__PURE__*/React.forwardRef(CalendarOutlined);","// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\nClockCircleOutlined.displayName = 'ClockCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ClockCircleOutlined);","// This icon file is generated automatically.\nvar SwapRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\" } }] }, \"name\": \"swap-right\", \"theme\": \"outlined\" };\nexport default SwapRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SwapRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SwapRightOutlined = function SwapRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SwapRightOutlinedSvg\n }));\n};\nSwapRightOutlined.displayName = 'SwapRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(SwapRightOutlined);","import * as React from 'react';\nvar PanelContext = /*#__PURE__*/React.createContext({});\nexport default PanelContext;","import * as React from 'react';\nimport PanelContext from \"../PanelContext\";\nvar HIDDEN_STYLE = {\n visibility: 'hidden'\n};\n\nfunction Header(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$prevIcon = _ref.prevIcon,\n prevIcon = _ref$prevIcon === void 0 ? \"\\u2039\" : _ref$prevIcon,\n _ref$nextIcon = _ref.nextIcon,\n nextIcon = _ref$nextIcon === void 0 ? \"\\u203A\" : _ref$nextIcon,\n _ref$superPrevIcon = _ref.superPrevIcon,\n superPrevIcon = _ref$superPrevIcon === void 0 ? \"\\xAB\" : _ref$superPrevIcon,\n _ref$superNextIcon = _ref.superNextIcon,\n superNextIcon = _ref$superNextIcon === void 0 ? \"\\xBB\" : _ref$superNextIcon,\n onSuperPrev = _ref.onSuperPrev,\n onSuperNext = _ref.onSuperNext,\n onPrev = _ref.onPrev,\n onNext = _ref.onNext,\n children = _ref.children;\n\n var _React$useContext = React.useContext(PanelContext),\n hideNextBtn = _React$useContext.hideNextBtn,\n hidePrevBtn = _React$useContext.hidePrevBtn;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: prefixCls\n }, onSuperPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, superPrevIcon), onPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, prevIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-view\")\n }, children), onNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, nextIcon), onSuperNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, superNextIcon));\n}\n\nexport default Header;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport { DECADE_DISTANCE_COUNT } from '.';\nimport PanelContext from \"../../PanelContext\";\n\nfunction DecadeHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecades = props.onPrevDecades,\n onNextDecades = props.onNextDecades;\n\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n\n if (hideHeader) {\n return null;\n }\n\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endYear = startYear + DECADE_DISTANCE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecades,\n onSuperNext: onNextDecades\n }), startYear, \"-\", endYear);\n}\n\nexport default DecadeHeader;","export function setTime(generateConfig, date, hour, minute, second) {\n var nextTime = generateConfig.setHour(date, hour);\n nextTime = generateConfig.setMinute(nextTime, minute);\n nextTime = generateConfig.setSecond(nextTime, second);\n return nextTime;\n}\nexport function setDateTime(generateConfig, date, defaultDate) {\n if (!defaultDate) {\n return date;\n }\n\n var 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}\nexport function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, secondStep) {\n var lowerBoundHour = Math.floor(hour / hourStep) * hourStep;\n\n if (lowerBoundHour < hour) {\n return [lowerBoundHour, 60 - minuteStep, 60 - secondStep];\n }\n\n var lowerBoundMinute = Math.floor(minute / minuteStep) * minuteStep;\n\n if (lowerBoundMinute < minute) {\n return [lowerBoundHour, lowerBoundMinute, 60 - secondStep];\n }\n\n var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;\n return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];\n}\nexport function getLastDay(generateConfig, date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date) + 1;\n var endDate = generateConfig.getEndDate(generateConfig.getFixedDate(\"\".concat(year, \"-\").concat(month, \"-01\")));\n var lastDay = generateConfig.getDate(endDate);\n var monthShow = month < 10 ? \"0\".concat(month) : \"\".concat(month);\n return \"\".concat(year, \"-\").concat(monthShow, \"-\").concat(lastDay);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport PanelContext from \"../PanelContext\";\nimport { getLastDay } from \"../utils/timeUtil\";\nimport { getCellDateDisabled } from \"../utils/dateUtil\";\nexport default function PanelBody(_ref) {\n var prefixCls = _ref.prefixCls,\n disabledDate = _ref.disabledDate,\n onSelect = _ref.onSelect,\n picker = _ref.picker,\n rowNum = _ref.rowNum,\n colNum = _ref.colNum,\n prefixColumn = _ref.prefixColumn,\n rowClassName = _ref.rowClassName,\n baseDate = _ref.baseDate,\n getCellClassName = _ref.getCellClassName,\n getCellText = _ref.getCellText,\n getCellNode = _ref.getCellNode,\n getCellDate = _ref.getCellDate,\n generateConfig = _ref.generateConfig,\n titleCell = _ref.titleCell,\n headerCells = _ref.headerCells;\n\n var _React$useContext = React.useContext(PanelContext),\n onDateMouseEnter = _React$useContext.onDateMouseEnter,\n onDateMouseLeave = _React$useContext.onDateMouseLeave,\n mode = _React$useContext.mode;\n\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\"); // =============================== Body ===============================\n\n var rows = [];\n\n for (var i = 0; i < rowNum; i += 1) {\n var row = [];\n var rowStartDate = void 0;\n\n var _loop = function _loop(j) {\n var _objectSpread2;\n\n var offset = i * colNum + j;\n var currentDate = getCellDate(baseDate, offset);\n var disabled = getCellDateDisabled({\n cellDate: currentDate,\n mode: mode,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n });\n\n if (j === 0) {\n rowStartDate = currentDate;\n\n if (prefixColumn) {\n row.push(prefixColumn(rowStartDate));\n }\n }\n\n var title = titleCell && titleCell(currentDate);\n row.push( /*#__PURE__*/React.createElement(\"td\", {\n key: j,\n title: title,\n className: classNames(cellPrefixCls, _objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-disabled\"), disabled), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-start\"), getCellText(currentDate) === 1 || picker === 'year' && Number(title) % 10 === 0), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-end\"), title === getLastDay(generateConfig, currentDate) || picker === 'year' && Number(title) % 10 === 9), _objectSpread2), getCellClassName(currentDate))),\n onClick: function onClick() {\n if (!disabled) {\n onSelect(currentDate);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled && onDateMouseEnter) {\n onDateMouseEnter(currentDate);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled && onDateMouseLeave) {\n onDateMouseLeave(currentDate);\n }\n }\n }, getCellNode ? getCellNode(currentDate) : /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, getCellText(currentDate))));\n };\n\n for (var j = 0; j < colNum; j += 1) {\n _loop(j);\n }\n\n rows.push( /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n className: rowClassName && rowClassName(rowStartDate)\n }, row));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\")\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, headerCells && /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, headerCells)), /*#__PURE__*/React.createElement(\"tbody\", null, rows)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from '.';\nimport PanelBody from \"../PanelBody\";\nexport var DECADE_COL_COUNT = 3;\nvar DECADE_ROW_COUNT = 4;\n\nfunction DecadeBody(props) {\n var DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;\n var prefixCls = props.prefixCls,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var yearNumber = generateConfig.getYear(viewDate);\n var decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;\n var baseDecadeYear = generateConfig.setYear(viewDate, startDecadeYear - Math.ceil((DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2));\n\n var getCellClassName = function getCellClassName(date) {\n var _ref;\n\n var startDecadeNumber = generateConfig.getYear(date);\n var endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;\n return _ref = {}, _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-in-view\"), startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear), _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-selected\"), startDecadeNumber === decadeYearNumber), _ref;\n };\n\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: DECADE_ROW_COUNT,\n colNum: DECADE_COL_COUNT,\n baseDate: baseDecadeYear,\n getCellText: function getCellText(date) {\n var startDecadeNumber = generateConfig.getYear(date);\n return \"\".concat(startDecadeNumber, \"-\").concat(startDecadeNumber + DECADE_UNIT_DIFF_DES);\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset * DECADE_UNIT_DIFF);\n }\n }));\n}\n\nexport default DecadeBody;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nvar scrollIds = new Map();\n/** Trigger when element is visible in view */\n\nexport function waitElementReady(element, callback) {\n var id;\n\n function tryOrNextFrame() {\n if (isVisible(element)) {\n callback();\n } else {\n id = raf(function () {\n tryOrNextFrame();\n });\n }\n }\n\n tryOrNextFrame();\n return function () {\n raf.cancel(id);\n };\n}\n/* eslint-disable no-param-reassign */\n\nexport function scrollTo(element, to, duration) {\n if (scrollIds.get(element)) {\n cancelAnimationFrame(scrollIds.get(element));\n } // jump to target if duration zero\n\n\n if (duration <= 0) {\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop = to;\n }));\n return;\n }\n\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop += perTick;\n\n if (element.scrollTop !== to) {\n scrollTo(element, to, duration - 10);\n }\n }));\n}\n/* eslint-enable */\n\nexport function createKeyDownHandler(event, _ref) {\n var onLeftRight = _ref.onLeftRight,\n onCtrlLeftRight = _ref.onCtrlLeftRight,\n onUpDown = _ref.onUpDown,\n onPageUpDown = _ref.onPageUpDown,\n onEnter = _ref.onEnter;\n var which = event.which,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\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\n\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\n\n break;\n\n case KeyCode.UP:\n if (onUpDown) {\n onUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n\n\n break;\n\n case KeyCode.DOWN:\n if (onUpDown) {\n onUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n\n\n break;\n\n case KeyCode.PAGE_UP:\n if (onPageUpDown) {\n onPageUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n\n\n break;\n\n case KeyCode.PAGE_DOWN:\n if (onPageUpDown) {\n onPageUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n\n\n break;\n\n case KeyCode.ENTER:\n if (onEnter) {\n onEnter();\n return true;\n }\n /* istanbul ignore next */\n\n\n break;\n }\n\n return false;\n} // ===================== Format =====================\n\nexport function getDefaultFormat(format, picker, showTime, use12Hours) {\n var mergedFormat = format;\n\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}\nexport function getInputSize(picker, format, generateConfig) {\n var defaultSize = picker === 'time' ? 8 : 10;\n var length = typeof format === 'function' ? format(generateConfig.getNow()).length : format.length;\n return Math.max(defaultSize, length) + 2;\n} // ===================== Window =====================\n\nvar globalClickFunc = null;\nvar clickCallbacks = new Set();\nexport function addGlobalMouseDownEvent(callback) {\n if (!globalClickFunc && typeof window !== 'undefined' && window.addEventListener) {\n globalClickFunc = function globalClickFunc(e) {\n // Clone a new list to avoid repeat trigger events\n _toConsumableArray(clickCallbacks).forEach(function (queueFunc) {\n queueFunc(e);\n });\n };\n\n window.addEventListener('mousedown', globalClickFunc);\n }\n\n clickCallbacks.add(callback);\n return function () {\n clickCallbacks.delete(callback);\n\n if (clickCallbacks.size === 0) {\n window.removeEventListener('mousedown', globalClickFunc);\n globalClickFunc = null;\n }\n };\n}\nexport function getTargetFromEvent(e) {\n var target = e.target; // get target if in shadow dom\n\n if (e.composed && target.shadowRoot) {\n var _e$composedPath;\n\n return ((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath.call(e)[0]) || target;\n }\n\n return target;\n} // ====================== Mode ======================\n\nvar getYearNextMode = function getYearNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'year';\n }\n\n return next;\n};\n\nvar getMonthNextMode = function getMonthNextMode(next) {\n if (next === 'date') {\n return 'month';\n }\n\n return next;\n};\n\nvar getQuarterNextMode = function getQuarterNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'quarter';\n }\n\n return next;\n};\n\nvar getWeekNextMode = function getWeekNextMode(next) {\n if (next === 'date') {\n return 'week';\n }\n\n return next;\n};\n\nexport var PickerModeMap = {\n year: getYearNextMode,\n month: getMonthNextMode,\n quarter: getQuarterNextMode,\n week: getWeekNextMode,\n time: null,\n date: null\n};\nexport function elementsContains(elements, target) {\n return elements.some(function (ele) {\n return ele && ele.contains(target);\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DecadeHeader from \"./DecadeHeader\";\nimport DecadeBody, { DECADE_COL_COUNT } from \"./DecadeBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nexport var DECADE_UNIT_DIFF = 10;\nexport var DECADE_DISTANCE_COUNT = DECADE_UNIT_DIFF * 10;\n\nfunction DecadePanel(props) {\n var prefixCls = props.prefixCls,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n operationRef = props.operationRef,\n onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-decade-panel\"); // ======================= Keyboard =======================\n\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF * DECADE_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('year', viewDate);\n }\n });\n }\n }; // ==================== View Operation ====================\n\n var onDecadesChange = function onDecadesChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n\n var onInternalSelect = function onInternalSelect(date) {\n onSelect(date, 'mouse');\n onPanelChange('year', date);\n };\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(DecadeHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecades: function onPrevDecades() {\n onDecadesChange(-1);\n },\n onNextDecades: function onNextDecades() {\n onDecadesChange(1);\n }\n })), /*#__PURE__*/React.createElement(DecadeBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: onInternalSelect\n })));\n}\n\nexport default DecadePanel;","import { DECADE_UNIT_DIFF } from \"../panels/DecadePanel/index\";\nexport var WEEK_DAY_COUNT = 7;\nexport function isNullEqual(value1, value2) {\n if (!value1 && !value2) {\n return true;\n }\n\n if (!value1 || !value2) {\n return false;\n }\n\n return undefined;\n}\nexport function isSameDecade(generateConfig, decade1, decade2) {\n var equal = isNullEqual(decade1, decade2);\n\n if (typeof equal === 'boolean') {\n return equal;\n }\n\n var num1 = Math.floor(generateConfig.getYear(decade1) / 10);\n var num2 = Math.floor(generateConfig.getYear(decade2) / 10);\n return num1 === num2;\n}\nexport function isSameYear(generateConfig, year1, year2) {\n var equal = isNullEqual(year1, year2);\n\n if (typeof equal === 'boolean') {\n return equal;\n }\n\n return generateConfig.getYear(year1) === generateConfig.getYear(year2);\n}\nexport function getQuarter(generateConfig, date) {\n var quota = Math.floor(generateConfig.getMonth(date) / 3);\n return quota + 1;\n}\nexport function isSameQuarter(generateConfig, quarter1, quarter2) {\n var equal = isNullEqual(quarter1, quarter2);\n\n if (typeof equal === 'boolean') {\n return equal;\n }\n\n return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);\n}\nexport function isSameMonth(generateConfig, month1, month2) {\n var equal = isNullEqual(month1, month2);\n\n if (typeof equal === 'boolean') {\n return equal;\n }\n\n return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);\n}\nexport function isSameDate(generateConfig, date1, date2) {\n var equal = isNullEqual(date1, date2);\n\n if (typeof equal === 'boolean') {\n return equal;\n }\n\n return generateConfig.getYear(date1) === generateConfig.getYear(date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n}\nexport function isSameTime(generateConfig, time1, time2) {\n var equal = isNullEqual(time1, time2);\n\n if (typeof equal === 'boolean') {\n return equal;\n }\n\n return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);\n}\nexport function isSameWeek(generateConfig, locale, date1, date2) {\n var equal = isNullEqual(date1, date2);\n\n if (typeof equal === 'boolean') {\n return equal;\n }\n\n return generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);\n}\nexport function isEqual(generateConfig, value1, value2) {\n return isSameDate(generateConfig, value1, value2) && isSameTime(generateConfig, value1, value2);\n}\n/** Between in date but not equal of date */\n\nexport function isInRange(generateConfig, startDate, endDate, current) {\n if (!startDate || !endDate || !current) {\n return false;\n }\n\n return !isSameDate(generateConfig, startDate, current) && !isSameDate(generateConfig, endDate, current) && generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);\n}\nexport function getWeekStartDate(locale, generateConfig, value) {\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n var monthStartDate = generateConfig.setDate(value, 1);\n var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n\n if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {\n alignStartDate = generateConfig.addDate(alignStartDate, -7);\n }\n\n return alignStartDate;\n}\nexport function getClosingViewDate(viewDate, picker, generateConfig) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n switch (picker) {\n case 'year':\n return generateConfig.addYear(viewDate, offset * 10);\n\n case 'quarter':\n case 'month':\n return generateConfig.addYear(viewDate, offset);\n\n default:\n return generateConfig.addMonth(viewDate, offset);\n }\n}\nexport function formatValue(value, _ref) {\n var generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n format = _ref.format;\n return typeof format === 'function' ? format(value) : generateConfig.locale.format(locale.locale, value, format);\n}\nexport function parseValue(value, _ref2) {\n var generateConfig = _ref2.generateConfig,\n locale = _ref2.locale,\n formatList = _ref2.formatList;\n\n if (!value || typeof formatList[0] === 'function') {\n return null;\n }\n\n return generateConfig.locale.parse(locale.locale, value, formatList);\n} // eslint-disable-next-line consistent-return\n\nexport function getCellDateDisabled(_ref3) {\n var cellDate = _ref3.cellDate,\n mode = _ref3.mode,\n disabledDate = _ref3.disabledDate,\n generateConfig = _ref3.generateConfig;\n if (!disabledDate) return false; // Whether cellDate is disabled in range\n\n var getDisabledFromRange = function getDisabledFromRange(currentMode, start, end) {\n var current = start;\n\n while (current <= end) {\n var _date = void 0;\n\n switch (currentMode) {\n case 'date':\n {\n _date = generateConfig.setDate(cellDate, current);\n\n if (!disabledDate(_date)) {\n return false;\n }\n\n break;\n }\n\n case 'month':\n {\n _date = generateConfig.setMonth(cellDate, current);\n\n if (!getCellDateDisabled({\n cellDate: _date,\n mode: 'month',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n\n break;\n }\n\n case 'year':\n {\n _date = generateConfig.setYear(cellDate, current);\n\n if (!getCellDateDisabled({\n cellDate: _date,\n mode: 'year',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n\n break;\n }\n }\n\n current += 1;\n }\n\n return true;\n };\n\n switch (mode) {\n case 'date':\n case 'week':\n {\n return disabledDate(cellDate);\n }\n\n case 'month':\n {\n var startDate = 1;\n var endDate = generateConfig.getDate(generateConfig.getEndDate(cellDate));\n return getDisabledFromRange('date', startDate, endDate);\n }\n\n case 'quarter':\n {\n var startMonth = Math.floor(generateConfig.getMonth(cellDate) / 3) * 3;\n var endMonth = startMonth + 2;\n return getDisabledFromRange('month', startMonth, endMonth);\n }\n\n case 'year':\n {\n return getDisabledFromRange('month', 0, 11);\n }\n\n case 'decade':\n {\n var year = generateConfig.getYear(cellDate);\n var startYear = Math.floor(year / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var endYear = startYear + DECADE_UNIT_DIFF - 1;\n return getDisabledFromRange('year', startYear, endYear);\n }\n }\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport shallowEqual from 'shallowequal';\nimport { formatValue, isEqual } from \"../utils/dateUtil\";\nexport default function useValueTexts(value, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n return useMemo(function () {\n if (!value) {\n return [[''], ''];\n } // We will convert data format back to first format\n\n\n var firstValueText = '';\n var fullValueTexts = [];\n\n for (var i = 0; i < formatList.length; i += 1) {\n var format = formatList[i];\n var formatStr = formatValue(value, {\n generateConfig: generateConfig,\n locale: locale,\n format: format\n });\n fullValueTexts.push(formatStr);\n\n if (i === 0) {\n firstValueText = formatStr;\n }\n }\n\n return [fullValueTexts, firstValueText];\n }, [value, formatList], function (prev, next) {\n return (// Not Same Date\n !isEqual(generateConfig, prev[0], next[0]) || // Not Same format\n !shallowEqual(prev[1], next[1])\n );\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport useValueTexts from \"./useValueTexts\";\nexport default function useHoverValue(valueText, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n internalSetValue = _useState2[1];\n\n var raf = useRef(null);\n\n function setValue(val) {\n var immediately = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n cancelAnimationFrame(raf.current);\n\n if (immediately) {\n internalSetValue(val);\n return;\n }\n\n raf.current = requestAnimationFrame(function () {\n internalSetValue(val);\n });\n }\n\n var _useValueTexts = useValueTexts(value, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n firstText = _useValueTexts2[1];\n\n function onEnter(date) {\n setValue(date);\n }\n\n function onLeave() {\n var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n setValue(null, immediately);\n }\n\n useEffect(function () {\n onLeave(true);\n }, [valueText]);\n useEffect(function () {\n return function () {\n return cancelAnimationFrame(raf.current);\n };\n }, []);\n return [firstText, onEnter, onLeave];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { addGlobalMouseDownEvent, getTargetFromEvent } from \"../utils/uiUtil\";\nexport default function usePickerInput(_ref) {\n var open = _ref.open,\n value = _ref.value,\n isClickOutside = _ref.isClickOutside,\n triggerOpen = _ref.triggerOpen,\n forwardKeyDown = _ref.forwardKeyDown,\n _onKeyDown = _ref.onKeyDown,\n blurToCancel = _ref.blurToCancel,\n onSubmit = _ref.onSubmit,\n onCancel = _ref.onCancel,\n _onFocus = _ref.onFocus,\n _onBlur = _ref.onBlur;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n typing = _useState2[0],\n setTyping = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n /**\n * We will prevent blur to handle open event when user click outside,\n * since this will repeat trigger `onOpenChange` event.\n */\n\n\n var preventBlurRef = useRef(false);\n var valueChangedRef = useRef(false);\n var preventDefaultRef = useRef(false);\n var inputProps = {\n onMouseDown: function onMouseDown() {\n setTyping(true);\n triggerOpen(true);\n },\n onKeyDown: function onKeyDown(e) {\n var preventDefault = function preventDefault() {\n preventDefaultRef.current = true;\n };\n\n _onKeyDown(e, preventDefault);\n\n if (preventDefaultRef.current) return;\n\n switch (e.which) {\n case KeyCode.ENTER:\n {\n if (!open) {\n triggerOpen(true);\n } else if (onSubmit() !== false) {\n setTyping(true);\n }\n\n e.preventDefault();\n return;\n }\n\n case KeyCode.TAB:\n {\n if (typing && open && !e.shiftKey) {\n setTyping(false);\n e.preventDefault();\n } else if (!typing && open) {\n if (!forwardKeyDown(e) && e.shiftKey) {\n setTyping(true);\n e.preventDefault();\n }\n }\n\n return;\n }\n\n case KeyCode.ESC:\n {\n setTyping(true);\n onCancel();\n return;\n }\n }\n\n if (!open && ![KeyCode.SHIFT].includes(e.which)) {\n triggerOpen(true);\n } else if (!typing) {\n // Let popup panel handle keyboard\n forwardKeyDown(e);\n }\n },\n onFocus: function onFocus(e) {\n setTyping(true);\n setFocused(true);\n\n if (_onFocus) {\n _onFocus(e);\n }\n },\n onBlur: function onBlur(e) {\n if (preventBlurRef.current || !isClickOutside(document.activeElement)) {\n preventBlurRef.current = false;\n return;\n }\n\n if (blurToCancel) {\n setTimeout(function () {\n var _document = document,\n activeElement = _document.activeElement;\n\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) {\n triggerOpen(false);\n\n if (valueChangedRef.current) {\n onSubmit();\n }\n }\n\n setFocused(false);\n\n if (_onBlur) {\n _onBlur(e);\n }\n }\n }; // check if value changed\n\n useEffect(function () {\n valueChangedRef.current = false;\n }, [open]);\n useEffect(function () {\n valueChangedRef.current = true;\n }, [value]); // Global click handler\n\n useEffect(function () {\n return addGlobalMouseDownEvent(function (e) {\n var target = getTargetFromEvent(e);\n\n if (open) {\n var clickedOutside = isClickOutside(target);\n\n if (!clickedOutside) {\n preventBlurRef.current = true; // Always set back in case `onBlur` prevented by user\n\n requestAnimationFrame(function () {\n preventBlurRef.current = false;\n });\n } else if (!focused || clickedOutside) {\n triggerOpen(false);\n }\n }\n });\n });\n return [inputProps, {\n focused: focused,\n typing: typing\n }];\n}","import * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport default function usePresets(presets, legacyRanges) {\n return React.useMemo(function () {\n if (presets) {\n return presets;\n }\n\n if (legacyRanges) {\n warning(false, '`ranges` is deprecated. Please use `presets` instead.');\n var rangeLabels = Object.keys(legacyRanges);\n return rangeLabels.map(function (label) {\n var range = legacyRanges[label];\n var newValues = typeof range === 'function' ? range() : range;\n return {\n label: label,\n value: newValues\n };\n });\n }\n\n return [];\n }, [presets, legacyRanges]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nexport default function useTextValueMapping(_ref) {\n var valueTexts = _ref.valueTexts,\n onTextChange = _ref.onTextChange;\n\n var _React$useState = React.useState(''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n text = _React$useState2[0],\n setInnerText = _React$useState2[1];\n\n var valueTextsRef = React.useRef([]);\n valueTextsRef.current = valueTexts;\n\n function triggerTextChange(value) {\n setInnerText(value);\n onTextChange(value);\n }\n\n function resetText() {\n setInnerText(valueTextsRef.current[0]);\n }\n\n useLayoutEffect(function () {\n if (valueTexts.every(function (valText) {\n return valText !== text;\n })) {\n resetText();\n }\n }, [valueTexts.join('||')]);\n return [text, triggerTextChange, resetText];\n}","import * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\n\nfunction TimeHeader(props) {\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n\n if (hideHeader) {\n return null;\n }\n\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n format = props.format;\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, {\n prefixCls: headerPrefixCls\n }, value ? formatValue(value, {\n locale: locale,\n format: format,\n generateConfig: generateConfig\n }) : \"\\xA0\");\n}\n\nexport default TimeHeader;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { useRef, useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { scrollTo, waitElementReady } from \"../../utils/uiUtil\";\nimport PanelContext from \"../../PanelContext\";\n\nfunction TimeUnitColumn(props) {\n var prefixCls = props.prefixCls,\n units = props.units,\n onSelect = props.onSelect,\n value = props.value,\n active = props.active,\n hideDisabledOptions = props.hideDisabledOptions;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n var _React$useContext = React.useContext(PanelContext),\n open = _React$useContext.open;\n\n var ulRef = useRef(null);\n var liRefs = useRef(new Map());\n var scrollRef = useRef(); // `useLayoutEffect` here to avoid blink by duration is 0\n\n useLayoutEffect(function () {\n var li = liRefs.current.get(value);\n\n if (li && open !== false) {\n scrollTo(ulRef.current, li.offsetTop, 120);\n }\n }, [value]);\n useLayoutEffect(function () {\n if (open) {\n var li = liRefs.current.get(value);\n\n if (li) {\n scrollRef.current = waitElementReady(li, function () {\n scrollTo(ulRef.current, li.offsetTop, 0);\n });\n }\n }\n\n return function () {\n var _scrollRef$current;\n\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.call(scrollRef);\n };\n }, [open]);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(\"\".concat(prefixCls, \"-column\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-active\"), active)),\n ref: ulRef,\n style: {\n position: 'relative'\n }\n }, units.map(function (unit) {\n var _classNames2;\n\n if (hideDisabledOptions && unit.disabled) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: unit.value,\n ref: function ref(element) {\n liRefs.current.set(unit.value, element);\n },\n className: classNames(cellPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-disabled\"), unit.disabled), _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-selected\"), value === unit.value), _classNames2)),\n onClick: function onClick() {\n if (unit.disabled) {\n return;\n }\n\n onSelect(unit.value);\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, unit.label));\n }));\n}\n\nexport default TimeUnitColumn;","export function leftPad(str, length) {\n var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n var current = String(str);\n\n while (current.length < length) {\n current = \"\".concat(fill).concat(str);\n }\n\n return current;\n}\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 function toArray(val) {\n if (val === null || val === undefined) {\n return [];\n }\n\n return Array.isArray(val) ? val : [val];\n}\nexport default function getDataOrAriaProps(props) {\n var retProps = {};\n Object.keys(props).forEach(function (key) {\n if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role' || key === 'name') && key.substr(0, 7) !== 'data-__') {\n retProps[key] = props[key];\n }\n });\n return retProps;\n}\nexport function getValue(values, index) {\n return values ? values[index] : null;\n}\nexport function updateValues(values, value, index) {\n var newValues = [getValue(values, 0), getValue(values, 1)];\n newValues[index] = typeof value === 'function' ? value(newValues[index]) : value;\n\n if (!newValues[0] && !newValues[1]) {\n return null;\n }\n\n return newValues;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport TimeUnitColumn from \"./TimeUnitColumn\";\nimport { leftPad } from \"../../utils/miscUtil\";\nimport { setTime as utilSetTime } from \"../../utils/timeUtil\";\n\nfunction shouldUnitsUpdate(prevUnits, nextUnits) {\n if (prevUnits.length !== nextUnits.length) return true; // if any unit's disabled status is different, the units should be re-evaluted\n\n for (var i = 0; i < prevUnits.length; i += 1) {\n if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;\n }\n\n return false;\n}\n\nfunction generateUnits(start, end, step, disabledUnits) {\n var units = [];\n\n for (var 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\n return units;\n}\n\nfunction TimeBody(props) {\n var generateConfig = props.generateConfig,\n prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n activeColumnIndex = props.activeColumnIndex,\n value = props.value,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n use12Hours = props.use12Hours,\n _props$hourStep = props.hourStep,\n hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n _props$minuteStep = props.minuteStep,\n minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n _props$secondStep = props.secondStep,\n secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds,\n disabledTime = props.disabledTime,\n hideDisabledOptions = props.hideDisabledOptions,\n onSelect = props.onSelect; // Misc\n\n var columns = [];\n var contentPrefixCls = \"\".concat(prefixCls, \"-content\");\n var columnPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var isPM;\n var originHour = value ? generateConfig.getHour(value) : -1;\n var hour = originHour;\n var minute = value ? generateConfig.getMinute(value) : -1;\n var second = value ? generateConfig.getSecond(value) : -1; // Disabled Time\n\n var now = generateConfig.getNow();\n\n var _React$useMemo = React.useMemo(function () {\n if (disabledTime) {\n var disabledConfig = disabledTime(now);\n return [disabledConfig.disabledHours, disabledConfig.disabledMinutes, disabledConfig.disabledSeconds];\n }\n\n return [disabledHours, disabledMinutes, disabledSeconds];\n }, [disabledHours, disabledMinutes, disabledSeconds, disabledTime, now]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n mergedDisabledHours = _React$useMemo2[0],\n mergedDisabledMinutes = _React$useMemo2[1],\n mergedDisabledSeconds = _React$useMemo2[2]; // Set Time\n\n\n var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {\n var newDate = value || generateConfig.getNow();\n var mergedHour = Math.max(0, newHour);\n var mergedMinute = Math.max(0, newMinute);\n var mergedSecond = Math.max(0, newSecond);\n newDate = utilSetTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);\n return newDate;\n }; // ========================= Unit =========================\n\n\n var rawHours = generateUnits(0, 23, hourStep, mergedDisabledHours && mergedDisabledHours());\n var memorizedRawHours = useMemo(function () {\n return rawHours;\n }, rawHours, shouldUnitsUpdate); // Should additional logic to handle 12 hours\n\n if (use12Hours) {\n isPM = hour >= 12; // -1 means should display AM\n\n hour %= 12;\n }\n\n var _React$useMemo3 = React.useMemo(function () {\n if (!use12Hours) {\n return [false, false];\n }\n\n var AMPMDisabled = [true, true];\n memorizedRawHours.forEach(function (_ref) {\n var disabled = _ref.disabled,\n hourValue = _ref.value;\n if (disabled) return;\n\n if (hourValue >= 12) {\n AMPMDisabled[1] = false;\n } else {\n AMPMDisabled[0] = false;\n }\n });\n return AMPMDisabled;\n }, [use12Hours, memorizedRawHours]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n AMDisabled = _React$useMemo4[0],\n PMDisabled = _React$useMemo4[1];\n\n var hours = React.useMemo(function () {\n if (!use12Hours) return memorizedRawHours;\n return memorizedRawHours.filter(isPM ? function (hourMeta) {\n return hourMeta.value >= 12;\n } : function (hourMeta) {\n return hourMeta.value < 12;\n }).map(function (hourMeta) {\n var hourValue = hourMeta.value % 12;\n var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n return _objectSpread(_objectSpread({}, hourMeta), {}, {\n label: hourLabel,\n value: hourValue\n });\n });\n }, [use12Hours, isPM, memorizedRawHours]);\n var minutes = generateUnits(0, 59, minuteStep, mergedDisabledMinutes && mergedDisabledMinutes(originHour));\n var seconds = generateUnits(0, 59, secondStep, mergedDisabledSeconds && mergedDisabledSeconds(originHour, minute)); // ====================== Operations ======================\n\n operationRef.current = {\n onUpDown: function onUpDown(diff) {\n var column = columns[activeColumnIndex];\n\n if (column) {\n var valueIndex = column.units.findIndex(function (unit) {\n return unit.value === column.value;\n });\n var unitLen = column.units.length;\n\n for (var i = 1; i < unitLen; i += 1) {\n var 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 }; // ======================== Render ========================\n\n function addColumnNode(condition, node, columnValue, units, onColumnSelect) {\n if (condition !== false) {\n columns.push({\n node: /*#__PURE__*/React.cloneElement(node, {\n prefixCls: columnPrefixCls,\n value: columnValue,\n active: activeColumnIndex === columns.length,\n onSelect: onColumnSelect,\n units: units,\n hideDisabledOptions: hideDisabledOptions\n }),\n onSelect: onColumnSelect,\n value: columnValue,\n units: units\n });\n }\n } // Hour\n\n\n addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"hour\"\n }), hour, hours, function (num) {\n onSelect(setTime(isPM, num, minute, second), 'mouse');\n }); // Minute\n\n addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"minute\"\n }), minute, minutes, function (num) {\n onSelect(setTime(isPM, hour, num, second), 'mouse');\n }); // Second\n\n addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"second\"\n }), second, seconds, function (num) {\n onSelect(setTime(isPM, hour, minute, num), 'mouse');\n }); // 12 Hours\n\n var PMIndex = -1;\n\n if (typeof isPM === 'boolean') {\n PMIndex = isPM ? 1 : 0;\n }\n\n addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"12hours\"\n }), PMIndex, [{\n label: 'AM',\n value: 0,\n disabled: AMDisabled\n }, {\n label: 'PM',\n value: 1,\n disabled: PMDisabled\n }], function (num) {\n onSelect(setTime(!!num, hour, minute, second), 'mouse');\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: contentPrefixCls\n }, columns.map(function (_ref2) {\n var node = _ref2.node;\n return node;\n }));\n}\n\nexport default TimeBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TimeHeader from \"./TimeHeader\";\nimport TimeBody from \"./TimeBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\n\nvar countBoolean = function countBoolean(boolList) {\n return boolList.filter(function (bool) {\n return bool !== false;\n }).length;\n};\n\nfunction TimePanel(props) {\n var generateConfig = props.generateConfig,\n _props$format = props.format,\n format = _props$format === void 0 ? 'HH:mm:ss' : _props$format,\n prefixCls = props.prefixCls,\n active = props.active,\n operationRef = props.operationRef,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n _props$use12Hours = props.use12Hours,\n use12Hours = _props$use12Hours === void 0 ? false : _props$use12Hours,\n onSelect = props.onSelect,\n value = props.value;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var bodyOperationRef = React.useRef(); // ======================= Keyboard =======================\n\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeColumnIndex = _React$useState2[0],\n setActiveColumnIndex = _React$useState2[1];\n\n var columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n setActiveColumnIndex((activeColumnIndex + diff + columnsCount) % columnsCount);\n },\n onUpDown: function onUpDown(diff) {\n if (activeColumnIndex === -1) {\n setActiveColumnIndex(0);\n } else if (bodyOperationRef.current) {\n bodyOperationRef.current.onUpDown(diff);\n }\n },\n onEnter: function onEnter() {\n onSelect(value || generateConfig.getNow(), 'key');\n setActiveColumnIndex(-1);\n }\n });\n },\n onBlur: function onBlur() {\n setActiveColumnIndex(-1);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(TimeHeader, _extends({}, props, {\n format: format,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(TimeBody, _extends({}, props, {\n prefixCls: prefixCls,\n activeColumnIndex: activeColumnIndex,\n operationRef: bodyOperationRef\n })));\n}\n\nexport default TimePanel;","import * as React from 'react';\nvar RangeContext = /*#__PURE__*/React.createContext({});\nexport default RangeContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isInRange } from \"../utils/dateUtil\";\nimport { getValue } from \"../utils/miscUtil\";\nexport default function useCellClassName(_ref) {\n var cellPrefixCls = _ref.cellPrefixCls,\n generateConfig = _ref.generateConfig,\n rangedValue = _ref.rangedValue,\n hoverRangedValue = _ref.hoverRangedValue,\n isInView = _ref.isInView,\n isSameCell = _ref.isSameCell,\n offsetCell = _ref.offsetCell,\n today = _ref.today,\n value = _ref.value;\n\n function getClassName(currentDate) {\n var _ref2;\n\n var prevDate = offsetCell(currentDate, -1);\n var nextDate = offsetCell(currentDate, 1);\n var rangeStart = getValue(rangedValue, 0);\n var rangeEnd = getValue(rangedValue, 1);\n var hoverStart = getValue(hoverRangedValue, 0);\n var hoverEnd = getValue(hoverRangedValue, 1);\n var isRangeHovered = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n\n function isRangeStart(date) {\n return isSameCell(rangeStart, date);\n }\n\n function isRangeEnd(date) {\n return isSameCell(rangeEnd, date);\n }\n\n var isHoverStart = isSameCell(hoverStart, currentDate);\n var isHoverEnd = isSameCell(hoverEnd, currentDate);\n var isHoverEdgeStart = (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));\n var isHoverEdgeEnd = (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));\n return _ref2 = {}, _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-view\"), isInView(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-range\"), isInRange(generateConfig, rangeStart, rangeEnd, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start\"), isRangeStart(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end\"), isRangeEnd(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-single\"), isRangeStart(currentDate) && !rangeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-single\"), isRangeEnd(currentDate) && !rangeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-near-hover\"), isRangeStart(currentDate) && (isSameCell(prevDate, hoverStart) || isInRange(generateConfig, hoverStart, hoverEnd, prevDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-near-hover\"), isRangeEnd(currentDate) && (isSameCell(nextDate, hoverEnd) || isInRange(generateConfig, hoverStart, hoverEnd, nextDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover\"), isRangeHovered), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-start\"), isHoverStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-end\"), isHoverEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start\"), isHoverEdgeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end\"), isHoverEdgeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start-near-range\"), isHoverEdgeStart && isSameCell(prevDate, rangeEnd)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end-near-range\"), isHoverEdgeEnd && isSameCell(nextDate, rangeStart)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-today\"), isSameCell(today, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-selected\"), isSameCell(value, currentDate)), _ref2;\n }\n\n return getClassName;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { WEEK_DAY_COUNT, getWeekStartDate, isSameDate, isSameMonth, formatValue } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport PanelBody from \"../PanelBody\";\n\nfunction DateBody(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n prefixColumn = props.prefixColumn,\n locale = props.locale,\n rowCount = props.rowCount,\n viewDate = props.viewDate,\n value = props.value,\n dateRender = props.dateRender;\n\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n\n var baseDate = getWeekStartDate(locale.locale, generateConfig, viewDate);\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n var today = generateConfig.getNow(); // ============================== Header ==============================\n\n var headerCells = [];\n var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);\n\n if (prefixColumn) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: \"empty\",\n \"aria-label\": \"empty cell\"\n }));\n }\n\n for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: i\n }, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));\n } // =============================== Body ===============================\n\n\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n today: today,\n value: value,\n generateConfig: generateConfig,\n rangedValue: prefixColumn ? null : rangedValue,\n hoverRangedValue: prefixColumn ? null : hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameDate(generateConfig, current, target);\n },\n isInView: function isInView(date) {\n return isSameMonth(generateConfig, date, viewDate);\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addDate(date, offset);\n }\n });\n var getCellNode = dateRender ? function (date) {\n return dateRender(date, today);\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, 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: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM-DD',\n generateConfig: generateConfig\n });\n },\n headerCells: headerCells\n }));\n}\n\nexport default DateBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\n\nfunction DateHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextMonth = props.onNextMonth,\n onPrevMonth = props.onPrevMonth,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick,\n onMonthClick = props.onMonthClick;\n\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n\n if (hideHeader) {\n return null;\n }\n\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var month = generateConfig.getMonth(viewDate); // =================== Month & Year ===================\n\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n onClick: onYearClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n var monthNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"month\",\n onClick: onMonthClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-month-btn\")\n }, locale.monthFormat ? formatValue(viewDate, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month]);\n var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onPrev: onPrevMonth,\n onNext: onNextMonth,\n onSuperNext: onNextYear\n }), monthYearNodes);\n}\n\nexport default DateHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport DateBody from \"./DateBody\";\nimport DateHeader from \"./DateHeader\";\nimport { WEEK_DAY_COUNT } from \"../../utils/dateUtil\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nvar DATE_ROW_COUNT = 6;\n\nfunction DatePanel(props) {\n var prefixCls = props.prefixCls,\n _props$panelName = props.panelName,\n panelName = _props$panelName === void 0 ? 'date' : _props$panelName,\n keyboardConfig = props.keyboardConfig,\n active = props.active,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onViewDateChange = props.onViewDateChange,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-\").concat(panelName, \"-panel\"); // ======================= Keyboard =======================\n\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, _objectSpread({\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');\n },\n onPageUpDown: function onPageUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n }\n }, keyboardConfig));\n }\n }; // ==================== View Operation ====================\n\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n\n var onMonthChange = function onMonthChange(diff) {\n var newDate = generateConfig.addMonth(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(DateHeader, _extends({}, props, {\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate // View Operation\n ,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onPrevMonth: function onPrevMonth() {\n onMonthChange(-1);\n },\n onNextMonth: function onNextMonth() {\n onMonthChange(1);\n },\n onMonthClick: function onMonthClick() {\n onPanelChange('month', viewDate);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(DateBody, _extends({}, props, {\n onSelect: function onSelect(date) {\n return _onSelect(date, 'mouse');\n },\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate,\n rowCount: DATE_ROW_COUNT\n })));\n}\n\nexport default DatePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport DatePanel from \"../DatePanel\";\nimport TimePanel from \"../TimePanel\";\nimport { tuple } from \"../../utils/miscUtil\";\nimport { setDateTime as setTime } from \"../../utils/timeUtil\";\nvar ACTIVE_PANEL = tuple('date', 'time');\n\nfunction DatetimePanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n defaultValue = props.defaultValue,\n disabledTime = props.disabledTime,\n showTime = props.showTime,\n onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-datetime-panel\");\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activePanel = _React$useState2[0],\n setActivePanel = _React$useState2[1];\n\n var dateOperationRef = React.useRef({});\n var timeOperationRef = React.useRef({});\n var timeProps = _typeof(showTime) === 'object' ? _objectSpread({}, showTime) : {}; // ======================= Keyboard =======================\n\n function getNextActive(offset) {\n var activeIndex = ACTIVE_PANEL.indexOf(activePanel) + offset;\n var nextActivePanel = ACTIVE_PANEL[activeIndex] || null;\n return nextActivePanel;\n }\n\n var onBlur = function onBlur(e) {\n if (timeOperationRef.current.onBlur) {\n timeOperationRef.current.onBlur(e);\n }\n\n setActivePanel(null);\n };\n\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n // Switch active panel\n if (event.which === KeyCode.TAB) {\n var nextActivePanel = getNextActive(event.shiftKey ? -1 : 1);\n setActivePanel(nextActivePanel);\n\n if (nextActivePanel) {\n event.preventDefault();\n }\n\n return true;\n } // Operate on current active panel\n\n\n if (activePanel) {\n var ref = activePanel === 'date' ? dateOperationRef : timeOperationRef;\n\n if (ref.current && ref.current.onKeyDown) {\n ref.current.onKeyDown(event);\n }\n\n return true;\n } // Switch first active panel if operate without panel\n\n\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN].includes(event.which)) {\n setActivePanel('date');\n return true;\n }\n\n return false;\n },\n onBlur: onBlur,\n onClose: onBlur\n }; // ======================== Events ========================\n\n var onInternalSelect = function onInternalSelect(date, source) {\n var selectedDate = date;\n\n if (source === 'date' && !value && timeProps.defaultValue) {\n // Date with time defaultValue\n selectedDate = generateConfig.setHour(selectedDate, generateConfig.getHour(timeProps.defaultValue));\n selectedDate = generateConfig.setMinute(selectedDate, generateConfig.getMinute(timeProps.defaultValue));\n selectedDate = generateConfig.setSecond(selectedDate, generateConfig.getSecond(timeProps.defaultValue));\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 }; // ======================== Render ========================\n\n\n var disabledTimes = disabledTime ? disabledTime(value || null) : {};\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), activePanel))\n }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n operationRef: dateOperationRef,\n active: activePanel === 'date',\n onSelect: function onSelect(date) {\n onInternalSelect(setTime(generateConfig, date, !value && _typeof(showTime) === 'object' ? showTime.defaultValue : null), 'date');\n }\n })), /*#__PURE__*/React.createElement(TimePanel, _extends({}, props, {\n format: undefined\n }, timeProps, disabledTimes, {\n disabledTime: null,\n defaultValue: undefined,\n operationRef: timeOperationRef,\n active: activePanel === 'time',\n onSelect: function onSelect(date) {\n onInternalSelect(date, 'time');\n }\n })));\n}\n\nexport default DatetimePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport DatePanel from \"../DatePanel\";\nimport { isSameWeek } from \"../../utils/dateUtil\";\n\nfunction WeekPanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value; // Render additional column\n\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n var prefixColumn = function prefixColumn(date) {\n return /*#__PURE__*/React.createElement(\"td\", {\n key: \"week\",\n className: classNames(cellPrefixCls, \"\".concat(cellPrefixCls, \"-week\"))\n }, generateConfig.locale.getWeek(locale.locale, date));\n }; // Add row className\n\n\n var rowPrefixCls = \"\".concat(prefixCls, \"-week-panel-row\");\n\n var rowClassName = function rowClassName(date) {\n return classNames(rowPrefixCls, _defineProperty({}, \"\".concat(rowPrefixCls, \"-selected\"), isSameWeek(generateConfig, locale.locale, value, date)));\n };\n\n return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n panelName: \"week\",\n prefixColumn: prefixColumn,\n rowClassName: rowClassName,\n keyboardConfig: {\n onLeftRight: null\n }\n }));\n}\n\nexport default WeekPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\n\nfunction MonthHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n\n if (hideHeader) {\n return null;\n }\n\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\n\nexport default MonthHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameMonth } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport PanelBody from \"../PanelBody\";\nexport var MONTH_COL_COUNT = 3;\nvar MONTH_ROW_COUNT = 4;\n\nfunction MonthBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n monthCellRender = props.monthCellRender;\n\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameMonth(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset);\n }\n });\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var baseMonth = generateConfig.setMonth(viewDate, 0);\n var getCellNode = monthCellRender ? function (date) {\n return monthCellRender(date, locale);\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: MONTH_ROW_COUNT,\n colNum: MONTH_COL_COUNT,\n baseDate: baseMonth,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n return locale.monthFormat ? formatValue(date, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[generateConfig.getMonth(date)];\n },\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addMonth,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM',\n generateConfig: generateConfig\n });\n }\n }));\n}\n\nexport default MonthBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport MonthHeader from \"./MonthHeader\";\nimport MonthBody, { MONTH_COL_COUNT } from \"./MonthBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\n\nfunction MonthPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-month-panel\"); // ======================= Keyboard =======================\n\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('date', value || viewDate);\n }\n });\n }\n }; // ==================== View Operation ====================\n\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(MonthHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(MonthBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n\n onPanelChange('date', date);\n }\n })));\n}\n\nexport default MonthPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport PanelContext from \"../../PanelContext\";\nimport { formatValue } from \"../../utils/dateUtil\";\n\nfunction QuarterHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n\n if (hideHeader) {\n return null;\n }\n\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\n\nexport default QuarterHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameQuarter } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport PanelBody from \"../PanelBody\";\nexport var QUARTER_COL_COUNT = 4;\nvar QUARTER_ROW_COUNT = 1;\n\nfunction QuarterBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig;\n\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameQuarter(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n }\n });\n var baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: QUARTER_ROW_COUNT,\n colNum: QUARTER_COL_COUNT,\n baseDate: baseQuarter,\n getCellText: function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.quarterFormat || '[Q]Q',\n generateConfig: generateConfig\n });\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n },\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-[Q]Q',\n generateConfig: generateConfig\n });\n }\n }));\n}\n\nexport default QuarterBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport QuarterHeader from \"./QuarterHeader\";\nimport QuarterBody from \"./QuarterBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\n\nfunction QuarterPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-quarter-panel\"); // ======================= Keyboard =======================\n\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * 3), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n }\n });\n }\n }; // ==================== View Operation ====================\n\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(QuarterHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(QuarterBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n }\n })));\n}\n\nexport default QuarterPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from \"../Header\";\nimport { YEAR_DECADE_COUNT } from '.';\nimport PanelContext from \"../../PanelContext\";\n\nfunction YearHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecade = props.onPrevDecade,\n onNextDecade = props.onNextDecade,\n onDecadeClick = props.onDecadeClick;\n\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n\n if (hideHeader) {\n return null;\n }\n\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecade,\n onSuperNext: onNextDecade\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onDecadeClick,\n className: \"\".concat(prefixCls, \"-decade-btn\")\n }, startYear, \"-\", endYear));\n}\n\nexport default YearHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { YEAR_DECADE_COUNT } from '.';\nimport useCellClassName from \"../../hooks/useCellClassName\";\nimport { formatValue, isSameYear } from \"../../utils/dateUtil\";\nimport RangeContext from \"../../RangeContext\";\nimport PanelBody from \"../PanelBody\";\nexport var YEAR_COL_COUNT = 3;\nvar YEAR_ROW_COUNT = 4;\n\nfunction YearBody(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n viewDate = props.viewDate,\n locale = props.locale,\n generateConfig = props.generateConfig;\n\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n\n var yearPrefixCls = \"\".concat(prefixCls, \"-cell\"); // =============================== Year ===============================\n\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2));\n\n var isInView = function isInView(date) {\n var currentYearNumber = generateConfig.getYear(date);\n return startYear <= currentYearNumber && currentYearNumber <= endYear;\n };\n\n var getCellClassName = useCellClassName({\n cellPrefixCls: yearPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameYear(generateConfig, current, target);\n },\n isInView: isInView,\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addYear(date, offset);\n }\n });\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, 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: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY',\n generateConfig: generateConfig\n });\n }\n }));\n}\n\nexport default YearBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport YearHeader from \"./YearHeader\";\nimport YearBody, { YEAR_COL_COUNT } from \"./YearBody\";\nimport { createKeyDownHandler } from \"../../utils/uiUtil\";\nexport var YEAR_DECADE_COUNT = 10;\n\nfunction YearPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n sourceMode = props.sourceMode,\n _onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-year-panel\"); // ======================= Keyboard =======================\n\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);\n }\n });\n }\n }; // ==================== View Operation ====================\n\n var onDecadeChange = function onDecadeChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * 10);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(YearHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecade: function onPrevDecade() {\n onDecadeChange(-1);\n },\n onNextDecade: function onNextDecade() {\n onDecadeChange(1);\n },\n onDecadeClick: function onDecadeClick() {\n onPanelChange('decade', viewDate);\n }\n })), /*#__PURE__*/React.createElement(YearBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);\n\n _onSelect(date, 'mouse');\n }\n })));\n}\n\nexport default YearPanel;","import * as React from 'react';\nexport default function getExtraFooter(prefixCls, mode, renderExtraFooter) {\n if (!renderExtraFooter) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer-extra\")\n }, renderExtraFooter(mode));\n}","import * as React from 'react';\nexport default function getRanges(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$components = _ref.components,\n components = _ref$components === void 0 ? {} : _ref$components,\n needConfirmButton = _ref.needConfirmButton,\n onNow = _ref.onNow,\n onOk = _ref.onOk,\n okDisabled = _ref.okDisabled,\n showNow = _ref.showNow,\n locale = _ref.locale;\n var presetNode;\n var okNode;\n\n if (needConfirmButton) {\n var Button = components.button || 'button';\n\n if (onNow && showNow !== false) {\n presetNode = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-now\")\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-now-btn\"),\n onClick: onNow\n }, locale.now));\n }\n\n okNode = needConfirmButton && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-ok\")\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: okDisabled,\n onClick: onOk\n }, locale.ok));\n }\n\n if (!presetNode && !okNode) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-ranges\")\n }, presetNode, okNode);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\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 { isEqual } from \"./utils/dateUtil\";\nimport PanelContext from \"./PanelContext\";\nimport { PickerModeMap } from \"./utils/uiUtil\";\nimport RangeContext from \"./RangeContext\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport { getLowerBoundTime, setDateTime, setTime } from \"./utils/timeUtil\";\n\nfunction PickerPanel(props) {\n var _classNames;\n\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n className = _ref.className,\n style = _ref.style,\n locale = _ref.locale,\n generateConfig = _ref.generateConfig,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n pickerValue = _ref.pickerValue,\n defaultPickerValue = _ref.defaultPickerValue,\n disabledDate = _ref.disabledDate,\n mode = _ref.mode,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n showNow = _ref.showNow,\n showTime = _ref.showTime,\n showToday = _ref.showToday,\n renderExtraFooter = _ref.renderExtraFooter,\n hideHeader = _ref.hideHeader,\n onSelect = _ref.onSelect,\n onChange = _ref.onChange,\n onPanelChange = _ref.onPanelChange,\n onMouseDown = _ref.onMouseDown,\n onPickerValueChange = _ref.onPickerValueChange,\n _onOk = _ref.onOk,\n components = _ref.components,\n direction = _ref.direction,\n _ref$hourStep = _ref.hourStep,\n hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,\n _ref$minuteStep = _ref.minuteStep,\n minuteStep = _ref$minuteStep === void 0 ? 1 : _ref$minuteStep,\n _ref$secondStep = _ref.secondStep,\n secondStep = _ref$secondStep === void 0 ? 1 : _ref$secondStep;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var isHourStepValid = 24 % hourStep === 0;\n var isMinuteStepValid = 60 % minuteStep === 0;\n var isSecondStepValid = 60 % secondStep === 0;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `value`.');\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `defaultValue`.');\n warning(isHourStepValid, \"`hourStep` \".concat(hourStep, \" is invalid. It should be a factor of 24.\"));\n warning(isMinuteStepValid, \"`minuteStep` \".concat(minuteStep, \" is invalid. It should be a factor of 60.\"));\n warning(isSecondStepValid, \"`secondStep` \".concat(secondStep, \" is invalid. It should be a factor of 60.\"));\n } // ============================ State =============================\n\n\n var panelContext = React.useContext(PanelContext);\n var operationRef = panelContext.operationRef,\n onContextSelect = panelContext.onSelect,\n hideRanges = panelContext.hideRanges,\n defaultOpenValue = panelContext.defaultOpenValue;\n\n var _React$useContext = React.useContext(RangeContext),\n inRange = _React$useContext.inRange,\n panelPosition = _React$useContext.panelPosition,\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n\n var panelRef = React.useRef({}); // Handle init logic\n\n var initRef = React.useRef(true); // Value\n\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(val) {\n if (!val && defaultOpenValue && picker === 'time') {\n return defaultOpenValue;\n }\n\n return val;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1]; // View date control\n\n\n var _useMergedState3 = useMergedState(null, {\n value: pickerValue,\n defaultValue: defaultPickerValue || mergedValue,\n postState: function postState(date) {\n var now = generateConfig.getNow();\n\n if (!date) {\n return now;\n } // When value is null and set showTime\n\n\n if (!mergedValue && showTime) {\n var defaultDateObject = _typeof(showTime) === 'object' ? showTime.defaultValue : defaultValue;\n return setDateTime(generateConfig, Array.isArray(date) ? date[0] : date, defaultDateObject || now);\n }\n\n return Array.isArray(date) ? date[0] : date;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n viewDate = _useMergedState4[0],\n setInnerViewDate = _useMergedState4[1];\n\n var setViewDate = function setViewDate(date) {\n setInnerViewDate(date);\n\n if (onPickerValueChange) {\n onPickerValueChange(date);\n }\n }; // Panel control\n\n\n var getInternalNextMode = function getInternalNextMode(nextMode) {\n var getNextMode = PickerModeMap[picker];\n\n if (getNextMode) {\n return getNextMode(nextMode);\n }\n\n return nextMode;\n }; // Save panel is changed from which panel\n\n\n var _useMergedState5 = useMergedState(function () {\n if (picker === 'time') {\n return 'time';\n }\n\n return getInternalNextMode('date');\n }, {\n value: mode\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedMode = _useMergedState6[0],\n setInnerMode = _useMergedState6[1];\n\n React.useEffect(function () {\n setInnerMode(picker);\n }, [picker]);\n\n var _React$useState = React.useState(function () {\n return mergedMode;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sourceMode = _React$useState2[0],\n setSourceMode = _React$useState2[1];\n\n var onInternalPanelChange = function onInternalPanelChange(newMode, viewValue) {\n var nextMode = getInternalNextMode(newMode || mergedMode);\n setSourceMode(mergedMode);\n setInnerMode(nextMode);\n\n if (onPanelChange && (mergedMode !== nextMode || isEqual(generateConfig, viewDate, viewDate))) {\n onPanelChange(viewValue, nextMode);\n }\n };\n\n var triggerSelect = function triggerSelect(date, type) {\n var forceTriggerSelect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (mergedMode === 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 (onChange && !isEqual(generateConfig, date, mergedValue) && !(disabledDate !== null && disabledDate !== void 0 && disabledDate(date))) {\n onChange(date);\n }\n }\n }; // ========================= Interactive ==========================\n\n\n var onInternalKeyDown = function onInternalKeyDown(e) {\n if (panelRef.current && panelRef.current.onKeyDown) {\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN, KeyCode.PAGE_UP, KeyCode.PAGE_DOWN, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n }\n\n return panelRef.current.onKeyDown(e);\n }\n /* istanbul ignore next */\n\n /* eslint-disable no-lone-blocks */\n\n\n {\n warning(false, 'Panel not correct handle keyDown event. Please help to fire issue about this.');\n return false;\n }\n /* eslint-enable no-lone-blocks */\n };\n\n var onInternalBlur = function onInternalBlur(e) {\n if (panelRef.current && panelRef.current.onBlur) {\n panelRef.current.onBlur(e);\n }\n };\n\n if (operationRef && panelPosition !== 'right') {\n operationRef.current = {\n onKeyDown: onInternalKeyDown,\n onClose: function onClose() {\n if (panelRef.current && panelRef.current.onClose) {\n panelRef.current.onClose();\n }\n }\n };\n } // ============================ Effect ============================\n\n\n React.useEffect(function () {\n if (value && !initRef.current) {\n setInnerViewDate(value);\n }\n }, [value]);\n React.useEffect(function () {\n initRef.current = false;\n }, []); // ============================ Panels ============================\n\n var panelNode;\n\n var pickerProps = _objectSpread(_objectSpread({}, props), {}, {\n operationRef: panelRef,\n prefixCls: prefixCls,\n viewDate: viewDate,\n value: mergedValue,\n onViewDateChange: setViewDate,\n sourceMode: sourceMode,\n onPanelChange: onInternalPanelChange,\n disabledDate: disabledDate\n });\n\n delete pickerProps.onChange;\n delete pickerProps.onSelect;\n\n switch (mergedMode) {\n case 'decade':\n panelNode = /*#__PURE__*/React.createElement(DecadePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n\n case 'year':\n panelNode = /*#__PURE__*/React.createElement(YearPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n\n case 'month':\n panelNode = /*#__PURE__*/React.createElement(MonthPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n\n case 'quarter':\n panelNode = /*#__PURE__*/React.createElement(QuarterPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n\n case 'week':\n panelNode = /*#__PURE__*/React.createElement(WeekPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n\n case 'time':\n delete pickerProps.showTime;\n panelNode = /*#__PURE__*/React.createElement(TimePanel, _extends({}, pickerProps, _typeof(showTime) === 'object' ? showTime : null, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n\n default:\n if (showTime) {\n panelNode = /*#__PURE__*/React.createElement(DatetimePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n } else {\n panelNode = /*#__PURE__*/React.createElement(DatePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n }\n\n } // ============================ Footer ============================\n\n\n var extraFooter;\n var rangesNode;\n\n var onNow = function onNow() {\n var now = generateConfig.getNow();\n var lowerBoundTime = getLowerBoundTime(generateConfig.getHour(now), generateConfig.getMinute(now), generateConfig.getSecond(now), isHourStepValid ? hourStep : 1, isMinuteStepValid ? minuteStep : 1, isSecondStepValid ? secondStep : 1);\n var adjustedNow = setTime(generateConfig, now, lowerBoundTime[0], // hour\n lowerBoundTime[1], // minute\n lowerBoundTime[2] // second\n );\n triggerSelect(adjustedNow, 'submit');\n };\n\n if (!hideRanges) {\n extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);\n rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !mergedValue || disabledDate && disabledDate(mergedValue),\n locale: locale,\n showNow: showNow,\n onNow: needConfirmButton && onNow,\n onOk: function onOk() {\n if (mergedValue) {\n triggerSelect(mergedValue, 'submit', true);\n\n if (_onOk) {\n _onOk(mergedValue);\n }\n }\n }\n });\n }\n\n var todayNode;\n\n if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {\n var now = generateConfig.getNow();\n var todayCls = \"\".concat(prefixCls, \"-today-btn\");\n var disabled = disabledDate && disabledDate(now);\n todayNode = /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(todayCls, disabled && \"\".concat(todayCls, \"-disabled\")),\n \"aria-disabled\": disabled,\n onClick: function onClick() {\n if (!disabled) {\n triggerSelect(now, 'mouse', true);\n }\n }\n }, locale.today);\n }\n\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: _objectSpread(_objectSpread({}, panelContext), {}, {\n mode: mergedMode,\n hideHeader: 'hideHeader' in props ? hideHeader : panelContext.hideHeader,\n hidePrevBtn: inRange && panelPosition === 'right',\n hideNextBtn: inRange && panelPosition === 'left'\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: tabIndex,\n className: classNames(\"\".concat(prefixCls, \"-panel\"), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range\"), rangedValue && rangedValue[0] && rangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range-hover\"), hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-rtl\"), direction === 'rtl'), _classNames)),\n style: style,\n onKeyDown: onInternalKeyDown,\n onBlur: onInternalBlur,\n onMouseDown: onMouseDown\n }, panelNode, extraFooter || rangesNode || todayNode ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraFooter, rangesNode, todayNode) : null));\n}\n\nexport default PickerPanel;\n/* eslint-enable */","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Trigger from 'rc-trigger';\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 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\nfunction PickerTrigger(_ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n popupElement = _ref.popupElement,\n popupStyle = _ref.popupStyle,\n visible = _ref.visible,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n transitionName = _ref.transitionName,\n getPopupContainer = _ref.getPopupContainer,\n children = _ref.children,\n range = _ref.range,\n popupPlacement = _ref.popupPlacement,\n direction = _ref.direction;\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n\n var getPopupPlacement = function getPopupPlacement() {\n if (popupPlacement !== undefined) {\n return popupPlacement;\n }\n\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n\n return /*#__PURE__*/React.createElement(Trigger, {\n showAction: [],\n hideAction: [],\n popupPlacement: getPopupPlacement(),\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: transitionName,\n popup: popupElement,\n popupAlign: dropdownAlign,\n popupVisible: visible,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-range\"), range), _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames)),\n popupStyle: popupStyle,\n getPopupContainer: getPopupContainer\n }, children);\n}\n\nexport default PickerTrigger;","import * as React from 'react';\nexport default function PresetPanel(props) {\n var prefixCls = props.prefixCls,\n presets = props.presets,\n _onClick = props.onClick,\n onHover = props.onHover;\n\n if (!presets.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-presets\")\n }, /*#__PURE__*/React.createElement(\"ul\", null, presets.map(function (_ref, index) {\n var label = _ref.label,\n value = _ref.value;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n onClick: function onClick() {\n _onClick(value);\n },\n onMouseEnter: function onMouseEnter() {\n onHover === null || onHover === void 0 ? void 0 : onHover(value);\n },\n onMouseLeave: function onMouseLeave() {\n onHover === null || onHover === void 0 ? void 0 : onHover(null);\n }\n }, label);\n })));\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 */\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport { formatValue, isEqual, parseValue } from \"./utils/dateUtil\";\nimport getDataOrAriaProps, { toArray } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\n\nfunction InnerPicker(props) {\n var _classNames2;\n\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n id = _ref.id,\n tabIndex = _ref.tabIndex,\n style = _ref.style,\n className = _ref.className,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n popupStyle = _ref.popupStyle,\n transitionName = _ref.transitionName,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n inputReadOnly = _ref.inputReadOnly,\n allowClear = _ref.allowClear,\n autoFocus = _ref.autoFocus,\n showTime = _ref.showTime,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n format = _ref.format,\n use12Hours = _ref.use12Hours,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n presets = _ref.presets,\n open = _ref.open,\n defaultOpen = _ref.defaultOpen,\n defaultOpenValue = _ref.defaultOpenValue,\n suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n disabled = _ref.disabled,\n disabledDate = _ref.disabledDate,\n placeholder = _ref.placeholder,\n getPopupContainer = _ref.getPopupContainer,\n pickerRef = _ref.pickerRef,\n panelRender = _ref.panelRender,\n onChange = _ref.onChange,\n onOpenChange = _ref.onOpenChange,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onMouseDown = _ref.onMouseDown,\n onMouseUp = _ref.onMouseUp,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n onContextMenu = _ref.onContextMenu,\n onClick = _ref.onClick,\n _onKeyDown = _ref.onKeyDown,\n _onSelect = _ref.onSelect,\n direction = _ref.direction,\n _ref$autoComplete = _ref.autoComplete,\n autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n inputRender = _ref.inputRender;\n var inputRef = React.useRef(null);\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var presetList = usePresets(presets); // ============================ Warning ============================\n\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n } // ============================= State =============================\n\n\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours)); // Panel ref\n\n var panelDivRef = React.useRef(null);\n var inputDivRef = React.useRef(null);\n var containerRef = React.useRef(null); // Real value\n\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1]; // Selected value\n\n\n var _React$useState = React.useState(mergedValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedValue = _React$useState2[0],\n setSelectedValue = _React$useState2[1]; // Operation ref\n\n\n var operationRef = React.useRef(null); // Open\n\n var _useMergedState3 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return disabled ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n triggerInnerOpen = _useMergedState4[1]; // ============================= Text ==============================\n\n\n var _useValueTexts = useValueTexts(selectedValue, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n valueTexts = _useValueTexts2[0],\n firstValueText = _useValueTexts2[1];\n\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: valueTexts,\n onTextChange: function onTextChange(newText) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n\n if (inputDate && (!disabledDate || !disabledDate(inputDate))) {\n setSelectedValue(inputDate);\n }\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n text = _useTextValueMapping2[0],\n triggerTextChange = _useTextValueMapping2[1],\n resetText = _useTextValueMapping2[2]; // ============================ Trigger ============================\n\n\n var triggerChange = function triggerChange(newValue) {\n setSelectedValue(newValue);\n setInnerValue(newValue);\n\n if (onChange && !isEqual(generateConfig, mergedValue, newValue)) {\n onChange(newValue, newValue ? formatValue(newValue, {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '');\n }\n };\n\n var triggerOpen = function triggerOpen(newOpen) {\n if (disabled && newOpen) {\n return;\n }\n\n triggerInnerOpen(newOpen);\n };\n\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n /* istanbul ignore next */\n\n /* eslint-disable no-lone-blocks */\n\n\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n\n var onInternalClick = function onInternalClick() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, args);\n\n if (inputRef.current) {\n inputRef.current.focus();\n triggerOpen(true);\n }\n }; // ============================= Input =============================\n\n\n var _usePickerInput = usePickerInput({\n blurToCancel: needConfirmButton,\n open: mergedOpen,\n value: text,\n triggerOpen: triggerOpen,\n forwardKeyDown: forwardKeyDown,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, inputDivRef.current, containerRef.current], target);\n },\n onSubmit: function onSubmit() {\n if ( // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue || // Normal disabled check\n disabledDate && disabledDate(selectedValue)) {\n return false;\n }\n\n triggerChange(selectedValue);\n triggerOpen(false);\n resetText();\n return true;\n },\n onCancel: function onCancel() {\n triggerOpen(false);\n setSelectedValue(mergedValue);\n resetText();\n },\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n },\n onFocus: onFocus,\n onBlur: onBlur\n }),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n inputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n focused = _usePickerInput2$.focused,\n typing = _usePickerInput2$.typing; // ============================= Sync ==============================\n // Close should sync back with text value\n\n\n React.useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n\n if (!valueTexts.length || valueTexts[0] === '') {\n triggerTextChange('');\n } else if (firstValueText !== text) {\n resetText();\n }\n }\n }, [mergedOpen, valueTexts]); // Change picker should sync back with text value\n\n React.useEffect(function () {\n if (!mergedOpen) {\n resetText();\n }\n }, [picker]); // Sync innerValue with control mode\n\n React.useEffect(function () {\n // Sync select value\n setSelectedValue(mergedValue);\n }, [mergedValue]); // ============================ Private ============================\n\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n blur: function blur() {\n if (inputRef.current) {\n inputRef.current.blur();\n }\n }\n };\n }\n\n var _useHoverValue = useHoverValue(text, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n hoverValue = _useHoverValue2[0],\n onEnter = _useHoverValue2[1],\n onLeave = _useHoverValue2[2]; // ============================= Panel =============================\n\n\n var panelProps = _objectSpread(_objectSpread({}, props), {}, {\n className: undefined,\n style: undefined,\n pickerValue: undefined,\n onPickerValueChange: undefined,\n onChange: null\n });\n\n var panelNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presetList,\n onClick: function onClick(nextValue) {\n triggerChange(nextValue);\n triggerOpen(false);\n }\n }), /*#__PURE__*/React.createElement(PickerPanel, _extends({}, panelProps, {\n generateConfig: generateConfig,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), !typing)),\n value: selectedValue,\n locale: locale,\n tabIndex: -1,\n onSelect: function onSelect(date) {\n _onSelect === null || _onSelect === void 0 ? void 0 : _onSelect(date);\n setSelectedValue(date);\n },\n direction: direction,\n onPanelChange: function onPanelChange(viewDate, mode) {\n var onPanelChange = props.onPanelChange;\n onLeave(true);\n onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(viewDate, mode);\n }\n })));\n\n if (panelRender) {\n panelNode = panelRender(panelNode);\n }\n\n var panel = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, panelNode);\n var suffixNode;\n\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, suffixIcon);\n }\n\n var clearNode;\n\n if (allowClear && mergedValue && !disabled) {\n clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n triggerChange(null);\n triggerOpen(false);\n },\n className: \"\".concat(prefixCls, \"-clear\"),\n role: \"button\"\n }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n }));\n }\n\n var mergedInputProps = _objectSpread(_objectSpread(_objectSpread({\n id: id,\n tabIndex: tabIndex,\n disabled: disabled,\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !typing,\n value: hoverValue || text,\n onChange: function onChange(e) {\n triggerTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: placeholder,\n ref: inputRef,\n title: text\n }, inputProps), {}, {\n size: getInputSize(picker, formatList[0], generateConfig)\n }, getDataOrAriaProps(props)), {}, {\n autoComplete: autoComplete\n });\n\n var inputNode = inputRender ? inputRender(mergedInputProps) : /*#__PURE__*/React.createElement(\"input\", mergedInputProps); // ============================ Warning ============================\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!defaultOpenValue, '`defaultOpenValue` may confuse user for the current value status. Please use `defaultValue` instead.');\n } // ============================ Return =============================\n\n\n var onContextSelect = function onContextSelect(date, type) {\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(date);\n triggerOpen(false);\n }\n };\n\n var popupPlacement = direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onSelect: onContextSelect,\n open: mergedOpen,\n defaultOpenValue: defaultOpenValue,\n onDateMouseEnter: onEnter,\n onDateMouseLeave: onLeave\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: panel,\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 }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onContextMenu: onContextMenu,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), _defineProperty({}, \"\".concat(prefixCls, \"-input-placeholder\"), !!hoverValue)),\n ref: inputDivRef\n }, inputNode, suffixNode, clearNode))));\n} // Wrap with class component to enable pass generic with instance method\n\n\nvar Picker = /*#__PURE__*/function (_React$Component) {\n _inherits(Picker, _React$Component);\n\n var _super = _createSuper(Picker);\n\n function Picker() {\n var _this;\n\n _classCallCheck(this, Picker);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n });\n\n return _this;\n }\n\n _createClass(Picker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerPicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n\n return Picker;\n}(React.Component);\n\nexport default Picker;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { getValue, updateValues } from \"../utils/miscUtil\";\nimport { getClosingViewDate, isSameYear, isSameMonth, isSameDecade } from \"../utils/dateUtil\";\n\nfunction getStartEndDistance(startDate, endDate, picker, generateConfig) {\n var startNext = getClosingViewDate(startDate, picker, generateConfig, 1);\n\n function getDistance(compareFunc) {\n if (compareFunc(startDate, endDate)) {\n return 'same';\n }\n\n if (compareFunc(startNext, endDate)) {\n return 'closing';\n }\n\n return 'far';\n }\n\n switch (picker) {\n case 'year':\n return getDistance(function (start, end) {\n return isSameDecade(generateConfig, start, end);\n });\n\n case 'quarter':\n case 'month':\n return getDistance(function (start, end) {\n return isSameYear(generateConfig, start, end);\n });\n\n default:\n return getDistance(function (start, end) {\n return isSameMonth(generateConfig, start, end);\n });\n }\n}\n\nfunction getRangeViewDate(values, index, picker, generateConfig) {\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n\n if (index === 0) {\n return startDate;\n }\n\n if (startDate && endDate) {\n var distance = getStartEndDistance(startDate, endDate, picker, generateConfig);\n\n switch (distance) {\n case 'same':\n return startDate;\n\n case 'closing':\n return startDate;\n\n default:\n return getClosingViewDate(endDate, picker, generateConfig, -1);\n }\n }\n\n return startDate;\n}\n\nexport default function useRangeViewDates(_ref) {\n var values = _ref.values,\n picker = _ref.picker,\n defaultDates = _ref.defaultDates,\n generateConfig = _ref.generateConfig;\n\n var _React$useState = React.useState(function () {\n return [getValue(defaultDates, 0), getValue(defaultDates, 1)];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n defaultViewDates = _React$useState2[0],\n setDefaultViewDates = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n viewDates = _React$useState4[0],\n setInternalViewDates = _React$useState4[1];\n\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n\n function getViewDate(index) {\n // If set default view date, use it\n if (defaultViewDates[index]) {\n return defaultViewDates[index];\n }\n\n return getValue(viewDates, index) || getRangeViewDate(values, index, picker, generateConfig) || startDate || endDate || generateConfig.getNow();\n }\n\n function setViewDate(viewDate, index) {\n if (viewDate) {\n var newViewDates = updateValues(viewDates, viewDate, index); // Set view date will clean up default one\n\n setDefaultViewDates( // Should always be an array\n updateValues(defaultViewDates, null, index) || [null, null]); // Reset another one when not have value\n\n var anotherIndex = (index + 1) % 2;\n\n if (!getValue(values, anotherIndex)) {\n newViewDates = updateValues(newViewDates, viewDate, anotherIndex);\n }\n\n setInternalViewDates(newViewDates);\n } else if (startDate || endDate) {\n // Reset all when has values when `viewDate` is `null` which means from open trigger\n setInternalViewDates(null);\n }\n }\n\n return [getViewDate, setViewDate];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeDisabled from \"./hooks/useRangeDisabled\";\nimport useRangeViewDates from \"./hooks/useRangeViewDates\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport RangeContext from \"./RangeContext\";\nimport { formatValue, getClosingViewDate, isEqual, isSameDate, isSameQuarter, isSameWeek, parseValue } from \"./utils/dateUtil\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport getDataOrAriaProps, { getValue, toArray, updateValues } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\n\nfunction reorderValues(values, generateConfig) {\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(value, index, disabled, allowEmpty) {\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\nfunction InnerRangePicker(props) {\n var _classNames2, _classNames3, _classNames4;\n\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n id = _ref.id,\n style = _ref.style,\n className = _ref.className,\n popupStyle = _ref.popupStyle,\n dropdownClassName = _ref.dropdownClassName,\n transitionName = _ref.transitionName,\n dropdownAlign = _ref.dropdownAlign,\n getPopupContainer = _ref.getPopupContainer,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n placeholder = _ref.placeholder,\n autoFocus = _ref.autoFocus,\n disabled = _ref.disabled,\n format = _ref.format,\n _ref$picker = _ref.picker,\n picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n showTime = _ref.showTime,\n use12Hours = _ref.use12Hours,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? '~' : _ref$separator,\n value = _ref.value,\n defaultValue = _ref.defaultValue,\n defaultPickerValue = _ref.defaultPickerValue,\n open = _ref.open,\n defaultOpen = _ref.defaultOpen,\n disabledDate = _ref.disabledDate,\n _disabledTime = _ref.disabledTime,\n dateRender = _ref.dateRender,\n panelRender = _ref.panelRender,\n presets = _ref.presets,\n ranges = _ref.ranges,\n allowEmpty = _ref.allowEmpty,\n allowClear = _ref.allowClear,\n suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n pickerRef = _ref.pickerRef,\n inputReadOnly = _ref.inputReadOnly,\n mode = _ref.mode,\n renderExtraFooter = _ref.renderExtraFooter,\n onChange = _ref.onChange,\n onOpenChange = _ref.onOpenChange,\n onPanelChange = _ref.onPanelChange,\n onCalendarChange = _ref.onCalendarChange,\n _onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onMouseDown = _ref.onMouseDown,\n onMouseUp = _ref.onMouseUp,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n _onOk = _ref.onOk,\n _onKeyDown = _ref.onKeyDown,\n components = _ref.components,\n order = _ref.order,\n direction = _ref.direction,\n activePickerIndex = _ref.activePickerIndex,\n _ref$autoComplete = _ref.autoComplete,\n autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time'; // We record opened status here in case repeat open with picker\n\n var openRecordsRef = useRef({});\n var containerRef = useRef(null);\n var panelDivRef = useRef(null);\n var startInputDivRef = useRef(null);\n var endInputDivRef = useRef(null);\n var separatorRef = useRef(null);\n var startInputRef = useRef(null);\n var endInputRef = useRef(null);\n var arrowRef = useRef(null); // ============================ Warning ============================\n\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n } // ============================= Misc ==============================\n\n\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours)); // Active picker\n\n var _useMergedState = useMergedState(0, {\n value: activePickerIndex\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActivePickerIndex = _useMergedState2[0],\n setMergedActivePickerIndex = _useMergedState2[1]; // Operation ref\n\n\n var operationRef = useRef(null);\n var mergedDisabled = React.useMemo(function () {\n if (Array.isArray(disabled)) {\n return disabled;\n }\n\n return [disabled || false, disabled || false];\n }, [disabled]); // ============================= Value =============================\n\n var _useMergedState3 = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(values) {\n return picker === 'time' && !order ? values : reorderValues(values, generateConfig);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedValue = _useMergedState4[0],\n setInnerValue = _useMergedState4[1]; // =========================== View Date ===========================\n // Config view panel\n\n\n var _useRangeViewDates = useRangeViewDates({\n values: mergedValue,\n picker: picker,\n defaultDates: defaultPickerValue,\n generateConfig: generateConfig\n }),\n _useRangeViewDates2 = _slicedToArray(_useRangeViewDates, 2),\n getViewDate = _useRangeViewDates2[0],\n setViewDate = _useRangeViewDates2[1]; // ========================= Select Values =========================\n\n\n var _useMergedState5 = useMergedState(mergedValue, {\n postState: function postState(values) {\n var postValues = values;\n\n if (mergedDisabled[0] && mergedDisabled[1]) {\n return postValues;\n } // Fill disabled unit\n\n\n for (var i = 0; i < 2; i += 1) {\n if (mergedDisabled[i] && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n postValues = updateValues(postValues, generateConfig.getNow(), i);\n }\n }\n\n return postValues;\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n selectedValue = _useMergedState6[0],\n setSelectedValue = _useMergedState6[1]; // ============================= Modes =============================\n\n\n var _useMergedState7 = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState8 = _slicedToArray(_useMergedState7, 2),\n mergedModes = _useMergedState8[0],\n setInnerModes = _useMergedState8[1];\n\n useEffect(function () {\n setInnerModes([picker, picker]);\n }, [picker]);\n\n var triggerModesChange = function triggerModesChange(modes, values) {\n setInnerModes(modes);\n\n if (onPanelChange) {\n onPanelChange(values, modes);\n }\n }; // ========================= Disable Date ==========================\n\n\n var _useRangeDisabled = useRangeDisabled({\n picker: picker,\n selectedValue: selectedValue,\n locale: locale,\n disabled: mergedDisabled,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n }, openRecordsRef.current[1], openRecordsRef.current[0]),\n _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n disabledStartDate = _useRangeDisabled2[0],\n disabledEndDate = _useRangeDisabled2[1]; // ============================= Open ==============================\n\n\n var _useMergedState9 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return mergedDisabled[mergedActivePickerIndex] ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState10 = _slicedToArray(_useMergedState9, 2),\n mergedOpen = _useMergedState10[0],\n triggerInnerOpen = _useMergedState10[1];\n\n var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n var endOpen = mergedOpen && mergedActivePickerIndex === 1; // ============================= Popup =============================\n // Popup min width\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n popupMinWidth = _useState2[0],\n setPopupMinWidth = _useState2[1];\n\n useEffect(function () {\n if (!mergedOpen && containerRef.current) {\n setPopupMinWidth(containerRef.current.offsetWidth);\n }\n }, [mergedOpen]); // ============================ Trigger ============================\n\n var triggerRef = React.useRef();\n\n function _triggerOpen(newOpen, index) {\n if (newOpen) {\n clearTimeout(triggerRef.current);\n openRecordsRef.current[index] = true;\n setMergedActivePickerIndex(index);\n triggerInnerOpen(newOpen); // Open to reset view date\n\n if (!mergedOpen) {\n setViewDate(null, index);\n }\n } else if (mergedActivePickerIndex === index) {\n triggerInnerOpen(newOpen); // Clean up async\n // This makes ref not quick refresh in case user open another input with blur trigger\n\n var openRecords = openRecordsRef.current;\n triggerRef.current = setTimeout(function () {\n if (openRecords === openRecordsRef.current) {\n openRecordsRef.current = {};\n }\n });\n }\n }\n\n function triggerOpenAndFocus(index) {\n _triggerOpen(true, index); // Use setTimeout to make sure panel DOM exists\n\n\n setTimeout(function () {\n var inputRef = [startInputRef, endInputRef][index];\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, 0);\n }\n\n function triggerChange(newValue, sourceIndex) {\n var values = newValue;\n var startValue = getValue(values, 0);\n var endValue = getValue(values, 1); // >>>>> Format start & end values\n\n if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n if ( // WeekPicker only compare week\n picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) || // QuotaPicker only compare week\n picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) || // Other non-TimePicker compare date\n picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {\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 } // Clean up cache since invalidate\n\n\n openRecordsRef.current = _defineProperty({}, sourceIndex, true);\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 var startStr = values && values[0] ? formatValue(values[0], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n var endStr = values && values[1] ? formatValue(values[1], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n\n if (onCalendarChange) {\n var _info = {\n range: sourceIndex === 0 ? 'start' : 'end'\n };\n onCalendarChange(values, [startStr, endStr], _info);\n } // >>>>> Trigger `onChange` event\n\n\n var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n\n if (canTrigger) {\n // Trigger onChange only when value is validate\n setInnerValue(values);\n\n if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n onChange(values, [startStr, endStr]);\n }\n } // >>>>> Open picker when\n // Always open another picker if possible\n\n\n var nextOpenIndex = null;\n\n if (sourceIndex === 0 && !mergedDisabled[1]) {\n nextOpenIndex = 1;\n } else if (sourceIndex === 1 && !mergedDisabled[0]) {\n nextOpenIndex = 0;\n }\n\n if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && getValue(values, sourceIndex)) {\n // Delay to focus to avoid input blur trigger expired selectedValues\n triggerOpenAndFocus(nextOpenIndex);\n } else {\n _triggerOpen(false, sourceIndex);\n }\n }\n\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n /* istanbul ignore next */\n\n /* eslint-disable no-lone-blocks */\n\n\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n }; // ============================= Text ==============================\n\n\n var sharedTextHooksProps = {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n };\n\n var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n startValueTexts = _useValueTexts2[0],\n firstStartValueText = _useValueTexts2[1];\n\n var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n endValueTexts = _useValueTexts4[0],\n firstEndValueText = _useValueTexts4[1];\n\n var _onTextChange = function onTextChange(newText, index) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n\n if (inputDate && !disabledFunc(inputDate)) {\n setSelectedValue(updateValues(selectedValue, inputDate, index));\n setViewDate(inputDate, index);\n }\n };\n\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: startValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 0);\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n startText = _useTextValueMapping2[0],\n triggerStartTextChange = _useTextValueMapping2[1],\n resetStartText = _useTextValueMapping2[2];\n\n var _useTextValueMapping3 = useTextValueMapping({\n valueTexts: endValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 1);\n }\n }),\n _useTextValueMapping4 = _slicedToArray(_useTextValueMapping3, 3),\n endText = _useTextValueMapping4[0],\n triggerEndTextChange = _useTextValueMapping4[1],\n resetEndText = _useTextValueMapping4[2];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n rangeHoverValue = _useState4[0],\n setRangeHoverValue = _useState4[1]; // ========================== Hover Range ==========================\n\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n hoverRangedValue = _useState6[0],\n setHoverRangedValue = _useState6[1];\n\n var _useHoverValue = useHoverValue(startText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n startHoverValue = _useHoverValue2[0],\n onStartEnter = _useHoverValue2[1],\n onStartLeave = _useHoverValue2[2];\n\n var _useHoverValue3 = useHoverValue(endText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),\n endHoverValue = _useHoverValue4[0],\n onEndEnter = _useHoverValue4[1],\n onEndLeave = _useHoverValue4[2];\n\n var onDateMouseEnter = function onDateMouseEnter(date) {\n setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n\n if (mergedActivePickerIndex === 0) {\n onStartEnter(date);\n } else {\n onEndEnter(date);\n }\n };\n\n var onDateMouseLeave = function onDateMouseLeave() {\n setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n }; // ============================= Input =============================\n\n\n var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n return {\n blurToCancel: needConfirmButton,\n forwardKeyDown: forwardKeyDown,\n onBlur: onBlur,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current, containerRef.current], target);\n },\n onFocus: function onFocus(e) {\n setMergedActivePickerIndex(index);\n\n if (_onFocus) {\n _onFocus(e);\n }\n },\n triggerOpen: function triggerOpen(newOpen) {\n _triggerOpen(newOpen, index);\n },\n onSubmit: function onSubmit() {\n if ( // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue || // Normal disabled check\n disabledDate && disabledDate(selectedValue[index])) {\n return false;\n }\n\n triggerChange(selectedValue, index);\n resetText();\n },\n onCancel: function onCancel() {\n _triggerOpen(false, index);\n\n setSelectedValue(mergedValue);\n resetText();\n }\n };\n };\n\n var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n open: startOpen,\n value: startText,\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n }\n })),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n startInputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n startFocused = _usePickerInput2$.focused,\n startTyping = _usePickerInput2$.typing;\n\n var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n open: endOpen,\n value: endText,\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n }\n })),\n _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n endInputProps = _usePickerInput4[0],\n _usePickerInput4$ = _usePickerInput4[1],\n endFocused = _usePickerInput4$.focused,\n endTyping = _usePickerInput4$.typing; // ========================== Click Picker ==========================\n\n\n var onPickerClick = function onPickerClick(e) {\n // When click inside the picker & outside the picker's input elements\n // the panel should still be opened\n if (onClick) {\n onClick(e);\n }\n\n if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n if (!mergedDisabled[0]) {\n triggerOpenAndFocus(0);\n } else if (!mergedDisabled[1]) {\n triggerOpenAndFocus(1);\n }\n }\n };\n\n var onPickerMouseDown = function onPickerMouseDown(e) {\n // shouldn't affect input elements if picker is active\n if (onMouseDown) {\n onMouseDown(e);\n }\n\n if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n e.preventDefault();\n }\n }; // ============================= Sync ==============================\n // Close should sync back with text value\n\n\n var startStr = mergedValue && mergedValue[0] ? formatValue(mergedValue[0], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n var endStr = mergedValue && mergedValue[1] ? formatValue(mergedValue[1], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n\n if (!startValueTexts.length || startValueTexts[0] === '') {\n triggerStartTextChange('');\n } else if (firstStartValueText !== startText) {\n resetStartText();\n }\n\n if (!endValueTexts.length || endValueTexts[0] === '') {\n triggerEndTextChange('');\n } else if (firstEndValueText !== endText) {\n resetEndText();\n }\n }\n }, [mergedOpen, startValueTexts, endValueTexts]); // Sync innerValue with control mode\n\n useEffect(function () {\n setSelectedValue(mergedValue);\n }, [startStr, endStr]); // ============================ Warning ============================\n\n if (process.env.NODE_ENV !== 'production') {\n if (value && Array.isArray(disabled) && (getValue(disabled, 0) && !getValue(value, 0) || getValue(disabled, 1) && !getValue(value, 1))) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n } // ============================ Private ============================\n\n\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (startInputRef.current) {\n startInputRef.current.focus();\n }\n },\n blur: function blur() {\n if (startInputRef.current) {\n startInputRef.current.blur();\n }\n\n if (endInputRef.current) {\n endInputRef.current.blur();\n }\n }\n };\n } // ============================ Ranges =============================\n\n\n var presetList = usePresets(presets, ranges); // ============================= Panel =============================\n\n function renderPanel() {\n var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var panelHoverRangedValue = null;\n\n if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n panelHoverRangedValue = hoverRangedValue;\n }\n\n var panelShowTime = showTime;\n\n if (showTime && _typeof(showTime) === 'object' && showTime.defaultValue) {\n var timeDefaultValues = showTime.defaultValue;\n panelShowTime = _objectSpread(_objectSpread({}, showTime), {}, {\n defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined\n });\n }\n\n var panelDateRender = null;\n\n if (dateRender) {\n panelDateRender = function panelDateRender(date, today) {\n return dateRender(date, today, {\n range: mergedActivePickerIndex ? 'end' : 'start'\n });\n };\n }\n\n return /*#__PURE__*/React.createElement(RangeContext.Provider, {\n value: {\n inRange: true,\n panelPosition: panelPosition,\n rangedValue: rangeHoverValue || selectedValue,\n hoverRangedValue: panelHoverRangedValue\n }\n }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, props, panelProps, {\n dateRender: panelDateRender,\n showTime: panelShowTime,\n mode: mergedModes[mergedActivePickerIndex],\n generateConfig: generateConfig,\n style: undefined,\n direction: direction,\n disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,\n disabledTime: function disabledTime(date) {\n if (_disabledTime) {\n return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');\n }\n\n return false;\n },\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),\n value: getValue(selectedValue, mergedActivePickerIndex),\n locale: locale,\n tabIndex: -1,\n onPanelChange: function onPanelChange(date, newMode) {\n // clear hover value when panel change\n if (mergedActivePickerIndex === 0) {\n onStartLeave(true);\n }\n\n if (mergedActivePickerIndex === 1) {\n onEndLeave(true);\n }\n\n triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n var viewDate = date;\n\n if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n }\n\n setViewDate(viewDate, mergedActivePickerIndex);\n },\n onOk: null,\n onSelect: undefined,\n onChange: undefined,\n defaultValue: mergedActivePickerIndex === 0 ? getValue(selectedValue, 1) : getValue(selectedValue, 0) // defaultPickerValue={undefined}\n\n })));\n }\n\n var arrowLeft = 0;\n var panelLeft = 0;\n\n if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current) {\n // Arrow offset\n arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth; // If panelWidth - arrowWidth - arrowMarginLeft < arrowLeft, panel should move to right side.\n // If arrowOffsetLeft > arrowLeft, arrowMarginLeft = arrowOffsetLeft - arrowLeft\n\n var arrowMarginLeft = arrowRef.current.offsetLeft > arrowLeft ? arrowRef.current.offsetLeft - arrowLeft : arrowRef.current.offsetLeft;\n\n if (panelDivRef.current.offsetWidth !== undefined && arrowRef.current.offsetWidth !== undefined && arrowLeft > panelDivRef.current.offsetWidth - arrowRef.current.offsetWidth - (direction === 'rtl' ? 0 : arrowMarginLeft)) {\n panelLeft = arrowLeft;\n }\n }\n\n var arrowPositionStyle = direction === 'rtl' ? {\n right: arrowLeft\n } : {\n left: arrowLeft\n };\n\n function renderPanels() {\n var panels;\n var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);\n var rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),\n locale: locale,\n // rangeList,\n onOk: function onOk() {\n if (getValue(selectedValue, mergedActivePickerIndex)) {\n // triggerChangeOld(selectedValue);\n triggerChange(selectedValue, mergedActivePickerIndex);\n\n if (_onOk) {\n _onOk(selectedValue);\n }\n }\n }\n });\n\n if (picker !== 'time' && !showTime) {\n var viewDate = getViewDate(mergedActivePickerIndex);\n var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n var currentMode = mergedModes[mergedActivePickerIndex];\n var showDoublePanel = currentMode === picker;\n var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n pickerValue: viewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(newViewDate, mergedActivePickerIndex);\n }\n });\n var rightPanel = renderPanel('right', {\n pickerValue: nextViewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);\n }\n });\n\n if (direction === 'rtl') {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, rightPanel, showDoublePanel && leftPanel);\n } else {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, leftPanel, showDoublePanel && rightPanel);\n }\n } else {\n panels = renderPanel();\n }\n\n var mergedNodes = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presetList,\n onClick: function onClick(nextValue) {\n triggerChange(nextValue, null);\n\n _triggerOpen(false, mergedActivePickerIndex);\n },\n onHover: function onHover(hoverValue) {\n setRangeHoverValue(hoverValue);\n }\n }), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panels\")\n }, panels), (extraNode || rangesNode) && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraNode, rangesNode)));\n\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n style: {\n marginLeft: panelLeft\n },\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, mergedNodes);\n }\n\n var rangePanel = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\")),\n style: {\n minWidth: popupMinWidth\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-range-arrow\"),\n style: arrowPositionStyle\n }), renderPanels()); // ============================= Icons =============================\n\n var suffixNode;\n\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, suffixIcon);\n }\n\n var clearNode;\n\n if (allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1])) {\n clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n var values = mergedValue;\n\n if (!mergedDisabled[0]) {\n values = updateValues(values, null, 0);\n }\n\n if (!mergedDisabled[1]) {\n values = updateValues(values, null, 1);\n }\n\n triggerChange(values, null);\n\n _triggerOpen(false, mergedActivePickerIndex);\n },\n className: \"\".concat(prefixCls, \"-clear\")\n }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n }));\n }\n\n var inputSharedProps = {\n size: getInputSize(picker, formatList[0], generateConfig)\n };\n var activeBarLeft = 0;\n var activeBarWidth = 0;\n\n if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {\n if (mergedActivePickerIndex === 0) {\n activeBarWidth = startInputDivRef.current.offsetWidth;\n } else {\n activeBarLeft = arrowLeft;\n activeBarWidth = endInputDivRef.current.offsetWidth;\n }\n }\n\n var activeBarPositionStyle = direction === 'rtl' ? {\n right: activeBarLeft\n } : {\n left: activeBarLeft\n }; // ============================ Return =============================\n\n var onContextSelect = function onContextSelect(date, type) {\n var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(values, mergedActivePickerIndex); // clear hover value style\n\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n } else {\n setSelectedValue(values);\n }\n };\n\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onDateMouseEnter: onDateMouseEnter,\n onDateMouseLeave: onDateMouseLeave,\n hideRanges: true,\n onSelect: onContextSelect,\n open: mergedOpen\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: rangePanel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n range: true,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onClick: onPickerClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onPickerMouseDown,\n onMouseUp: onMouseUp\n }, getDataOrAriaProps(props)), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 0), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-placeholder\"), !!startHoverValue), _classNames3)),\n ref: startInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n id: id,\n disabled: mergedDisabled[0],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !startTyping,\n value: startHoverValue || startText,\n onChange: function onChange(e) {\n triggerStartTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: getValue(placeholder, 0) || '',\n ref: startInputRef\n }, startInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-range-separator\"),\n ref: separatorRef\n }, separator), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 1), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-placeholder\"), !!endHoverValue), _classNames4)),\n ref: endInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n disabled: mergedDisabled[1],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !endTyping,\n value: endHoverValue || endText,\n onChange: function onChange(e) {\n triggerEndTextChange(e.target.value);\n },\n placeholder: getValue(placeholder, 1) || '',\n ref: endInputRef\n }, endInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-active-bar\"),\n style: _objectSpread(_objectSpread({}, activeBarPositionStyle), {}, {\n width: activeBarWidth,\n position: 'absolute'\n })\n }), suffixNode, clearNode)));\n} // Wrap with class component to enable pass generic with instance method\n\n\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n _inherits(RangePicker, _React$Component);\n\n var _super = _createSuper(RangePicker);\n\n function RangePicker() {\n var _this;\n\n _classCallCheck(this, RangePicker);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n });\n\n return _this;\n }\n\n _createClass(RangePicker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerRangePicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n\n return RangePicker;\n}(React.Component);\n\nexport default RangePicker;","import * as React from 'react';\nimport { getValue } from \"../utils/miscUtil\";\nimport { isSameDate, getQuarter } from \"../utils/dateUtil\";\nexport default function useRangeDisabled(_ref, disabledStart, disabledEnd) {\n var picker = _ref.picker,\n locale = _ref.locale,\n selectedValue = _ref.selectedValue,\n disabledDate = _ref.disabledDate,\n disabled = _ref.disabled,\n generateConfig = _ref.generateConfig;\n var startDate = getValue(selectedValue, 0);\n var endDate = getValue(selectedValue, 1);\n\n function weekFirstDate(date) {\n return generateConfig.locale.getWeekFirstDate(locale.locale, date);\n }\n\n function monthNumber(date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date);\n return year * 100 + month;\n }\n\n function quarterNumber(date) {\n var year = generateConfig.getYear(date);\n var quarter = getQuarter(generateConfig, date);\n return year * 10 + quarter;\n }\n\n var disabledStartDate = React.useCallback(function (date) {\n if (disabledDate && disabledDate(date)) {\n return true;\n } // Disabled range\n\n\n if (disabled[1] && endDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n } // Disabled part\n\n\n if (disabledStart && endDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) > quarterNumber(endDate);\n\n case 'month':\n return monthNumber(date) > monthNumber(endDate);\n\n case 'week':\n return weekFirstDate(date) > weekFirstDate(endDate);\n\n default:\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n }\n\n return false;\n }, [disabledDate, disabled[1], endDate, disabledStart]);\n var disabledEndDate = React.useCallback(function (date) {\n if (disabledDate && disabledDate(date)) {\n return true;\n } // Disabled range\n\n\n if (disabled[0] && startDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(startDate, date);\n } // Disabled part\n\n\n if (disabledEnd && startDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) < quarterNumber(startDate);\n\n case 'month':\n return monthNumber(date) < monthNumber(startDate);\n\n case 'week':\n return weekFirstDate(date) < weekFirstDate(startDate);\n\n default:\n return !isSameDate(generateConfig, date, startDate) && generateConfig.isAfter(startDate, date);\n }\n }\n\n return false;\n }, [disabledDate, disabled[0], startDate, disabledEnd]);\n return [disabledStartDate, disabledEndDate];\n}","import Picker from \"./Picker\";\nimport PickerPanel from \"./PickerPanel\";\nimport RangePicker from \"./RangePicker\";\nexport { PickerPanel, RangePicker };\nexport default Picker;","export function getPlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\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}\nexport function getRangePlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.rangeYearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.rangeQuarterPlaceholder;\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}\nexport function transPlacement2DropdownAlign(direction, placement) {\n const overflow = {\n adjustX: 1,\n adjustY: 1\n };\n switch (placement) {\n case 'bottomLeft':\n {\n return {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n case 'bottomRight':\n {\n return {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow\n };\n }\n case 'topLeft':\n {\n return {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow\n };\n }\n case 'topRight':\n {\n return {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow\n };\n }\n default:\n {\n return {\n points: direction === 'rtl' ? ['tr', 'br'] : ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n }\n}","import { TinyColor } from '@ctrl/tinycolor';\nimport { genActiveStyle, genBasicInputStyle, genHoverStyle, initInputToken } from '../../input/style';\nimport { initSlideMotion, initMoveMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent, roundedArrow, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nconst genPikerPadding = (token, inputHeight, fontSize, paddingHorizontal) => {\n const {\n lineHeight\n } = token;\n const fontHeight = Math.floor(fontSize * lineHeight) + 2;\n const paddingTop = Math.max((inputHeight - fontHeight) / 2, 0);\n const paddingBottom = Math.max(inputHeight - fontHeight - paddingTop, 0);\n return {\n padding: `${paddingTop}px ${paddingHorizontal}px ${paddingBottom}px`\n };\n};\nconst genPickerCellInnerStyle = token => {\n const {\n componentCls,\n pickerCellCls,\n pickerCellInnerCls,\n pickerPanelCellHeight,\n motionDurationSlow,\n borderRadiusSM,\n motionDurationMid,\n controlItemBgHover,\n lineWidth,\n lineType,\n colorPrimary,\n controlItemBgActive,\n colorTextLightSolid,\n controlHeightSM,\n pickerDateHoverRangeBorderColor,\n pickerCellBorderGap,\n pickerBasicCellHoverWithRangeColor,\n pickerPanelCellWidth,\n colorTextDisabled,\n colorBgContainerDisabled\n } = token;\n return {\n '&::before': {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n zIndex: 1,\n height: pickerPanelCellHeight,\n transform: 'translateY(-50%)',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n },\n // >>> Default\n [pickerCellInnerCls]: {\n position: 'relative',\n zIndex: 2,\n display: 'inline-block',\n minWidth: pickerPanelCellHeight,\n height: pickerPanelCellHeight,\n lineHeight: `${pickerPanelCellHeight}px`,\n borderRadius: borderRadiusSM,\n transition: `background ${motionDurationMid}, border ${motionDurationMid}`\n },\n // >>> Hover\n [`&:hover:not(${pickerCellCls}-in-view),\n &:hover:not(${pickerCellCls}-selected):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end):not(${pickerCellCls}-range-hover-start):not(${pickerCellCls}-range-hover-end)`]: {\n [pickerCellInnerCls]: {\n background: controlItemBgHover\n }\n },\n // >>> Today\n [`&-in-view${pickerCellCls}-today ${pickerCellInnerCls}`]: {\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 1,\n border: `${lineWidth}px ${lineType} ${colorPrimary}`,\n borderRadius: borderRadiusSM,\n content: '\"\"'\n }\n },\n // >>> In Range\n [`&-in-view${pickerCellCls}-in-range`]: {\n position: 'relative',\n '&::before': {\n background: controlItemBgActive\n }\n },\n // >>> Selected\n [`&-in-view${pickerCellCls}-selected ${pickerCellInnerCls},\n &-in-view${pickerCellCls}-range-start ${pickerCellInnerCls},\n &-in-view${pickerCellCls}-range-end ${pickerCellInnerCls}`]: {\n color: colorTextLightSolid,\n background: colorPrimary\n },\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single),\n &-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single)`]: {\n '&::before': {\n background: controlItemBgActive\n }\n },\n [`&-in-view${pickerCellCls}-range-start::before`]: {\n insetInlineStart: '50%'\n },\n [`&-in-view${pickerCellCls}-range-end::before`]: {\n insetInlineEnd: '50%'\n },\n // >>> Range Hover\n [`&-in-view${pickerCellCls}-range-hover-start:not(${pickerCellCls}-in-range):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end),\n &-in-view${pickerCellCls}-range-hover-end:not(${pickerCellCls}-in-range):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end),\n &-in-view${pickerCellCls}-range-hover-start${pickerCellCls}-range-start-single,\n &-in-view${pickerCellCls}-range-hover-start${pickerCellCls}-range-start${pickerCellCls}-range-end${pickerCellCls}-range-end-near-hover,\n &-in-view${pickerCellCls}-range-hover-end${pickerCellCls}-range-start${pickerCellCls}-range-end${pickerCellCls}-range-start-near-hover,\n &-in-view${pickerCellCls}-range-hover-end${pickerCellCls}-range-end-single,\n &-in-view${pickerCellCls}-range-hover:not(${pickerCellCls}-in-range)`]: {\n '&::after': {\n position: 'absolute',\n top: '50%',\n zIndex: 0,\n height: controlHeightSM,\n borderTop: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderBottom: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n transform: 'translateY(-50%)',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n // Add space for stash\n [`&-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after`]: {\n insetInlineEnd: 0,\n insetInlineStart: pickerCellBorderGap\n },\n // Hover with in range\n [`&-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-range-start${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-range-end${pickerCellCls}-range-hover::before,\n &-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single)${pickerCellCls}-range-hover-start::before,\n &-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single)${pickerCellCls}-range-hover-end::before,\n ${componentCls}-panel\n > :not(${componentCls}-date-panel)\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-start::before,\n ${componentCls}-panel\n > :not(${componentCls}-date-panel)\n &-in-view${pickerCellCls}-in-range${pickerCellCls}-range-hover-end::before`]: {\n background: pickerBasicCellHoverWithRangeColor\n },\n // range start border-radius\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-start-single):not(${pickerCellCls}-range-end) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n },\n // range end border-radius\n [`&-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-end-single):not(${pickerCellCls}-range-start) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n },\n [`&-range-hover${pickerCellCls}-range-end::after`]: {\n insetInlineStart: '50%'\n },\n // Edge start\n [`tr > &-in-view${pickerCellCls}-range-hover:first-child::after,\n tr > &-in-view${pickerCellCls}-range-hover-end:first-child::after,\n &-in-view${pickerCellCls}-start${pickerCellCls}-range-hover-edge-start${pickerCellCls}-range-hover-edge-start-near-range::after,\n &-in-view${pickerCellCls}-range-hover-edge-start:not(${pickerCellCls}-range-hover-edge-start-near-range)::after,\n &-in-view${pickerCellCls}-range-hover-start::after`]: {\n insetInlineStart: (pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartStartRadius: lineWidth,\n borderEndStartRadius: lineWidth\n },\n // Edge end\n [`tr > &-in-view${pickerCellCls}-range-hover:last-child::after,\n tr > &-in-view${pickerCellCls}-range-hover-start:last-child::after,\n &-in-view${pickerCellCls}-end${pickerCellCls}-range-hover-edge-end${pickerCellCls}-range-hover-edge-end-near-range::after,\n &-in-view${pickerCellCls}-range-hover-edge-end:not(${pickerCellCls}-range-hover-edge-end-near-range)::after,\n &-in-view${pickerCellCls}-range-hover-end::after`]: {\n insetInlineEnd: (pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartEndRadius: lineWidth,\n borderEndEndRadius: lineWidth\n },\n // >>> Disabled\n '&-disabled': {\n color: colorTextDisabled,\n pointerEvents: 'none',\n [pickerCellInnerCls]: {\n background: 'transparent'\n },\n '&::before': {\n background: colorBgContainerDisabled\n }\n },\n [`&-disabled${pickerCellCls}-today ${pickerCellInnerCls}::before`]: {\n borderColor: colorTextDisabled\n }\n };\n};\nexport const genPanelStyle = token => {\n const {\n componentCls,\n pickerCellInnerCls,\n pickerYearMonthCellWidth,\n pickerControlIconSize,\n pickerPanelCellWidth,\n paddingSM,\n paddingXS,\n paddingXXS,\n colorBgContainer,\n lineWidth,\n lineType,\n borderRadiusLG,\n colorPrimary,\n colorTextHeading,\n colorSplit,\n pickerControlIconBorderWidth,\n colorIcon,\n pickerTextHeight,\n motionDurationMid,\n colorIconHover,\n fontWeightStrong,\n pickerPanelCellHeight,\n pickerCellPaddingVertical,\n colorTextDisabled,\n colorText,\n fontSize,\n pickerBasicCellHoverWithRangeColor,\n motionDurationSlow,\n pickerPanelWithoutTimeCellHeight,\n pickerQuarterPanelContentHeight,\n colorLink,\n colorLinkActive,\n colorLinkHover,\n pickerDateHoverRangeBorderColor,\n borderRadiusSM,\n colorTextLightSolid,\n borderRadius,\n controlItemBgHover,\n pickerTimePanelColumnHeight,\n pickerTimePanelColumnWidth,\n pickerTimePanelCellHeight,\n controlItemBgActive,\n marginXXS\n } = token;\n const pickerPanelWidth = pickerPanelCellWidth * 7 + paddingSM * 2 + 4;\n const hoverCellFixedDistance = (pickerPanelWidth - paddingXS * 2) / 3 - pickerYearMonthCellWidth / 2;\n return {\n [componentCls]: {\n '&-panel': {\n display: 'inline-flex',\n flexDirection: 'column',\n textAlign: 'center',\n background: colorBgContainer,\n border: `${lineWidth}px ${lineType} ${colorSplit}`,\n borderRadius: borderRadiusLG,\n outline: 'none',\n '&-focused': {\n borderColor: colorPrimary\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-prev-icon,\n ${componentCls}-super-prev-icon`]: {\n transform: 'rotate(45deg)'\n },\n [`${componentCls}-next-icon,\n ${componentCls}-super-next-icon`]: {\n transform: 'rotate(-135deg)'\n }\n }\n },\n // ========================================================\n // = Shared Panel =\n // ========================================================\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel`]: {\n display: 'flex',\n flexDirection: 'column',\n width: pickerPanelWidth\n },\n // ======================= Header =======================\n '&-header': {\n display: 'flex',\n padding: `0 ${paddingXS}px`,\n color: colorTextHeading,\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`,\n '> *': {\n flex: 'none'\n },\n button: {\n padding: 0,\n color: colorIcon,\n lineHeight: `${pickerTextHeight}px`,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n transition: `color ${motionDurationMid}`\n },\n '> button': {\n minWidth: '1.6em',\n fontSize,\n '&:hover': {\n color: colorIconHover\n }\n },\n '&-view': {\n flex: 'auto',\n fontWeight: fontWeightStrong,\n lineHeight: `${pickerTextHeight}px`,\n button: {\n color: 'inherit',\n fontWeight: 'inherit',\n verticalAlign: 'top',\n '&:not(:first-child)': {\n marginInlineStart: paddingXS\n },\n '&:hover': {\n color: colorPrimary\n }\n }\n }\n },\n // Arrow button\n [`&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon`]: {\n position: 'relative',\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: `0 solid currentcolor`,\n borderBlockStartWidth: pickerControlIconBorderWidth,\n borderBlockEndWidth: 0,\n borderInlineStartWidth: pickerControlIconBorderWidth,\n borderInlineEndWidth: 0,\n content: '\"\"'\n }\n },\n [`&-super-prev-icon,\n &-super-next-icon`]: {\n '&::after': {\n position: 'absolute',\n top: Math.ceil(pickerControlIconSize / 2),\n insetInlineStart: Math.ceil(pickerControlIconSize / 2),\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: '0 solid currentcolor',\n borderBlockStartWidth: pickerControlIconBorderWidth,\n borderBlockEndWidth: 0,\n borderInlineStartWidth: pickerControlIconBorderWidth,\n borderInlineEndWidth: 0,\n content: '\"\"'\n }\n },\n [`&-prev-icon,\n &-super-prev-icon`]: {\n transform: 'rotate(-45deg)'\n },\n [`&-next-icon,\n &-super-next-icon`]: {\n transform: 'rotate(135deg)'\n },\n // ======================== Body ========================\n '&-content': {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse',\n 'th, td': {\n position: 'relative',\n minWidth: pickerPanelCellHeight,\n fontWeight: 'normal'\n },\n th: {\n height: pickerPanelCellHeight + pickerCellPaddingVertical * 2,\n color: colorText,\n verticalAlign: 'middle'\n }\n },\n '&-cell': Object.assign({\n padding: `${pickerCellPaddingVertical}px 0`,\n color: colorTextDisabled,\n cursor: 'pointer',\n // In view\n '&-in-view': {\n color: colorText\n }\n }, genPickerCellInnerStyle(token)),\n // DatePanel only\n [`&-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-start ${pickerCellInnerCls},\n &-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-end ${pickerCellInnerCls}`]: {\n '&::after': {\n position: 'absolute',\n top: 0,\n bottom: 0,\n zIndex: -1,\n background: pickerBasicCellHoverWithRangeColor,\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n [`&-date-panel\n ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-start\n ${pickerCellInnerCls}::after`]: {\n insetInlineEnd: -(pickerPanelCellWidth - pickerPanelCellHeight) / 2,\n insetInlineStart: 0\n },\n [`&-date-panel ${componentCls}-cell-in-view${componentCls}-cell-in-range${componentCls}-cell-range-hover-end ${pickerCellInnerCls}::after`]: {\n insetInlineEnd: 0,\n insetInlineStart: -(pickerPanelCellWidth - pickerPanelCellHeight) / 2\n },\n // Hover with range start & end\n [`&-range-hover${componentCls}-range-start::after`]: {\n insetInlineEnd: '50%'\n },\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-content`]: {\n height: pickerPanelWithoutTimeCellHeight * 4\n },\n [pickerCellInnerCls]: {\n padding: `0 ${paddingXS}px`\n }\n },\n '&-quarter-panel': {\n [`${componentCls}-content`]: {\n height: pickerQuarterPanelContentHeight\n }\n },\n // ======================== Footer ========================\n [`&-panel ${componentCls}-footer`]: {\n borderTop: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n '&-footer': {\n width: 'min-content',\n minWidth: '100%',\n lineHeight: `${pickerTextHeight - 2 * lineWidth}px`,\n textAlign: 'center',\n '&-extra': {\n padding: `0 ${paddingSM}`,\n lineHeight: `${pickerTextHeight - 2 * lineWidth}px`,\n textAlign: 'start',\n '&:not(:last-child)': {\n borderBottom: `${lineWidth}px ${lineType} ${colorSplit}`\n }\n }\n },\n '&-now': {\n textAlign: 'start'\n },\n '&-today-btn': {\n color: colorLink,\n '&:hover': {\n color: colorLinkHover\n },\n '&:active': {\n color: colorLinkActive\n },\n [`&${componentCls}-today-btn-disabled`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // ========================================================\n // = Special =\n // ========================================================\n // ===================== Decade Panel =====================\n '&-decade-panel': {\n [pickerCellInnerCls]: {\n padding: `0 ${paddingXS / 2}px`\n },\n [`${componentCls}-cell::before`]: {\n display: 'none'\n }\n },\n // ============= Year & Quarter & Month Panel =============\n [`&-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-body`]: {\n padding: `0 ${paddingXS}px`\n },\n [pickerCellInnerCls]: {\n width: pickerYearMonthCellWidth\n },\n [`${componentCls}-cell-range-hover-start::after`]: {\n insetInlineStart: hoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartStartRadius: borderRadiusSM,\n borderBottomStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderBottomEndRadius: 0,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineEnd: hoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartStartRadius: 0,\n borderBottomStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderBottomEndRadius: borderRadiusSM\n }\n },\n [`${componentCls}-cell-range-hover-end::after`]: {\n insetInlineEnd: hoverCellFixedDistance,\n borderInlineEnd: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartStartRadius: 0,\n borderBottomStartRadius: 0,\n borderStartEndRadius: borderRadius,\n borderBottomEndRadius: borderRadius,\n [`${componentCls}-panel-rtl &`]: {\n insetInlineStart: hoverCellFixedDistance,\n borderInlineStart: `${lineWidth}px dashed ${pickerDateHoverRangeBorderColor}`,\n borderStartStartRadius: borderRadius,\n borderBottomStartRadius: borderRadius,\n borderStartEndRadius: 0,\n borderBottomEndRadius: 0\n }\n }\n },\n // ====================== Week Panel ======================\n '&-week-panel': {\n [`${componentCls}-body`]: {\n padding: `${paddingXS}px ${paddingSM}px`\n },\n // Clear cell style\n [`${componentCls}-cell`]: {\n [`&:hover ${pickerCellInnerCls},\n &-selected ${pickerCellInnerCls},\n ${pickerCellInnerCls}`]: {\n background: 'transparent !important'\n }\n },\n '&-row': {\n td: {\n transition: `background ${motionDurationMid}`,\n '&:first-child': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n '&:hover td': {\n background: controlItemBgHover\n },\n [`&-selected td,\n &-selected:hover td`]: {\n background: colorPrimary,\n [`&${componentCls}-cell-week`]: {\n color: new TinyColor(colorTextLightSolid).setAlpha(0.5).toHexString()\n },\n [`&${componentCls}-cell-today ${pickerCellInnerCls}::before`]: {\n borderColor: colorTextLightSolid\n },\n [pickerCellInnerCls]: {\n color: colorTextLightSolid\n }\n }\n }\n },\n // ====================== Date Panel ======================\n '&-date-panel': {\n [`${componentCls}-body`]: {\n padding: `${paddingXS}px ${paddingSM}px`\n },\n [`${componentCls}-content`]: {\n width: pickerPanelCellWidth * 7,\n th: {\n width: pickerPanelCellWidth\n }\n }\n },\n // ==================== Datetime Panel ====================\n '&-datetime-panel': {\n display: 'flex',\n [`${componentCls}-time-panel`]: {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n transition: `opacity ${motionDurationSlow}`\n },\n // Keyboard\n '&-active': {\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n opacity: 0.3,\n '&-active': {\n opacity: 1\n }\n }\n }\n },\n // ====================== Time Panel ======================\n '&-time-panel': {\n width: 'auto',\n minWidth: 'auto',\n direction: 'ltr',\n [`${componentCls}-content`]: {\n display: 'flex',\n flex: 'auto',\n height: pickerTimePanelColumnHeight\n },\n '&-column': {\n flex: '1 0 auto',\n width: pickerTimePanelColumnWidth,\n margin: `${paddingXXS}px 0`,\n padding: 0,\n overflowY: 'hidden',\n textAlign: 'start',\n listStyle: 'none',\n transition: `background ${motionDurationMid}`,\n overflowX: 'hidden',\n '&::after': {\n display: 'block',\n height: pickerTimePanelColumnHeight - pickerTimePanelCellHeight,\n content: '\"\"'\n },\n '&:not(:first-child)': {\n borderInlineStart: `${lineWidth}px ${lineType} ${colorSplit}`\n },\n '&-active': {\n background: new TinyColor(controlItemBgActive).setAlpha(0.2).toHexString()\n },\n '&:hover': {\n overflowY: 'auto'\n },\n '> li': {\n margin: 0,\n padding: 0,\n [`&${componentCls}-time-panel-cell`]: {\n marginInline: marginXXS,\n [`${componentCls}-time-panel-cell-inner`]: {\n display: 'block',\n width: pickerTimePanelColumnWidth - 2 * marginXXS,\n height: pickerTimePanelCellHeight,\n margin: 0,\n paddingBlock: 0,\n paddingInlineEnd: 0,\n paddingInlineStart: (pickerTimePanelColumnWidth - pickerTimePanelCellHeight) / 2,\n color: colorText,\n lineHeight: `${pickerTimePanelCellHeight}px`,\n borderRadius: borderRadiusSM,\n cursor: 'pointer',\n transition: `background ${motionDurationMid}`,\n '&:hover': {\n background: controlItemBgHover\n }\n },\n '&-selected': {\n [`${componentCls}-time-panel-cell-inner`]: {\n background: controlItemBgActive\n }\n },\n '&-disabled': {\n [`${componentCls}-time-panel-cell-inner`]: {\n color: colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n }\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/39227\n [`&-datetime-panel ${componentCls}-time-panel-column:after`]: {\n height: pickerTimePanelColumnHeight - pickerTimePanelCellHeight + paddingXXS * 2\n }\n }\n };\n};\nconst genPickerStatusStyle = token => {\n const {\n componentCls,\n colorBgContainer,\n colorError,\n colorErrorOutline,\n colorWarning,\n colorWarningOutline\n } = token;\n return {\n [componentCls]: {\n [`&-status-error${componentCls}`]: {\n '&, &:not([disabled]):hover': {\n backgroundColor: colorBgContainer,\n borderColor: colorError\n },\n '&-focused, &:focus': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorError,\n inputBorderHoverColor: colorError,\n controlOutline: colorErrorOutline\n }))),\n [`${componentCls}-active-bar`]: {\n background: colorError\n }\n },\n [`&-status-warning${componentCls}`]: {\n '&, &:not([disabled]):hover': {\n backgroundColor: colorBgContainer,\n borderColor: colorWarning\n },\n '&-focused, &:focus': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorWarning,\n inputBorderHoverColor: colorWarning,\n controlOutline: colorWarningOutline\n }))),\n [`${componentCls}-active-bar`]: {\n background: colorWarning\n }\n }\n }\n };\n};\nconst genPickerStyle = token => {\n const {\n componentCls,\n antCls,\n boxShadowPopoverArrow,\n controlHeight,\n fontSize,\n inputPaddingHorizontal,\n colorBgContainer,\n lineWidth,\n lineType,\n colorBorder,\n borderRadius,\n motionDurationMid,\n colorBgContainerDisabled,\n colorTextDisabled,\n colorTextPlaceholder,\n controlHeightLG,\n fontSizeLG,\n controlHeightSM,\n inputPaddingHorizontalSM,\n paddingXS,\n marginXS,\n colorTextDescription,\n lineWidthBold,\n lineHeight,\n colorPrimary,\n motionDurationSlow,\n zIndexPopup,\n paddingXXS,\n paddingSM,\n pickerTextHeight,\n controlItemBgActive,\n colorPrimaryBorder,\n sizePopupArrow,\n borderRadiusXS,\n borderRadiusOuter,\n colorBgElevated,\n borderRadiusLG,\n boxShadowSecondary,\n borderRadiusSM,\n colorSplit,\n controlItemBgHover,\n presetsWidth,\n presetsMaxWidth\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPikerPadding(token, controlHeight, fontSize, inputPaddingHorizontal)), {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n background: colorBgContainer,\n lineHeight: 1,\n border: `${lineWidth}px ${lineType} ${colorBorder}`,\n borderRadius,\n transition: `border ${motionDurationMid}, box-shadow ${motionDurationMid}`,\n '&:hover, &-focused': Object.assign({}, genHoverStyle(token)),\n '&-focused': Object.assign({}, genActiveStyle(token)),\n [`&${componentCls}-disabled`]: {\n background: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n [`${componentCls}-suffix`]: {\n color: colorTextDisabled\n }\n },\n [`&${componentCls}-borderless`]: {\n backgroundColor: 'transparent !important',\n borderColor: 'transparent !important',\n boxShadow: 'none !important'\n },\n // ======================== Input =========================\n [`${componentCls}-input`]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: '100%',\n '> input': Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n flex: 'auto',\n // Fix Firefox flex not correct:\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n minWidth: 1,\n height: 'auto',\n padding: 0,\n background: 'transparent',\n border: 0,\n '&:focus': {\n boxShadow: 'none'\n },\n '&[disabled]': {\n background: 'transparent'\n }\n }),\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n },\n '&-placeholder': {\n '> input': {\n color: colorTextPlaceholder\n }\n }\n },\n // Size\n '&-large': Object.assign(Object.assign({}, genPikerPadding(token, controlHeightLG, fontSizeLG, inputPaddingHorizontal)), {\n [`${componentCls}-input > input`]: {\n fontSize: fontSizeLG\n }\n }),\n '&-small': Object.assign({}, genPikerPadding(token, controlHeightSM, fontSize, inputPaddingHorizontalSM)),\n [`${componentCls}-suffix`]: {\n display: 'flex',\n flex: 'none',\n alignSelf: 'center',\n marginInlineStart: paddingXS / 2,\n color: colorTextDisabled,\n lineHeight: 1,\n pointerEvents: 'none',\n '> *': {\n verticalAlign: 'top',\n '&:not(:last-child)': {\n marginInlineEnd: marginXS\n }\n }\n },\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n color: colorTextDisabled,\n lineHeight: 1,\n background: colorBgContainer,\n transform: 'translateY(-50%)',\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationMid}, color ${motionDurationMid}`,\n '> *': {\n verticalAlign: 'top'\n },\n '&:hover': {\n color: colorTextDescription\n }\n },\n [`${componentCls}-separator`]: {\n position: 'relative',\n display: 'inline-block',\n width: '1em',\n height: fontSizeLG,\n color: colorTextDisabled,\n fontSize: fontSizeLG,\n verticalAlign: 'top',\n cursor: 'default',\n [`${componentCls}-focused &`]: {\n color: colorTextDescription\n },\n [`${componentCls}-range-separator &`]: {\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n }\n }\n },\n // ======================== Range =========================\n '&-range': {\n position: 'relative',\n display: 'inline-flex',\n // Clear\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontal\n },\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n }\n },\n // Active bar\n [`${componentCls}-active-bar`]: {\n bottom: -lineWidth,\n height: lineWidthBold,\n marginInlineStart: inputPaddingHorizontal,\n background: colorPrimary,\n opacity: 0,\n transition: `all ${motionDurationSlow} ease-out`,\n pointerEvents: 'none'\n },\n [`&${componentCls}-focused`]: {\n [`${componentCls}-active-bar`]: {\n opacity: 1\n }\n },\n [`${componentCls}-range-separator`]: {\n alignItems: 'center',\n padding: `0 ${paddingXS}px`,\n lineHeight: 1\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: inputPaddingHorizontalSM\n },\n [`${componentCls}-active-bar`]: {\n marginInlineStart: inputPaddingHorizontalSM\n }\n }\n },\n // ======================= Dropdown =======================\n '&-dropdown': Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPanelStyle(token)), {\n position: 'absolute',\n // Fix incorrect position of picker popup\n // https://github.com/ant-design/ant-design/issues/35590\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n [`&${componentCls}-dropdown-hidden`]: {\n display: 'none'\n },\n [`&${componentCls}-dropdown-placement-bottomLeft`]: {\n [`${componentCls}-range-arrow`]: {\n top: 0,\n display: 'block',\n transform: 'translateY(-100%)'\n }\n },\n [`&${componentCls}-dropdown-placement-topLeft`]: {\n [`${componentCls}-range-arrow`]: {\n bottom: 0,\n display: 'block',\n transform: 'translateY(100%) rotate(180deg)'\n }\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n // Time picker with additional style\n [`${componentCls}-panel > ${componentCls}-time-panel`]: {\n paddingTop: paddingXXS\n },\n // ======================== Ranges ========================\n [`${componentCls}-ranges`]: {\n marginBottom: 0,\n padding: `${paddingXXS}px ${paddingSM}px`,\n overflow: 'hidden',\n lineHeight: `${pickerTextHeight - 2 * lineWidth - paddingXS / 2}px`,\n textAlign: 'start',\n listStyle: 'none',\n display: 'flex',\n justifyContent: 'space-between',\n '> li': {\n display: 'inline-block'\n },\n // https://github.com/ant-design/ant-design/issues/23687\n [`${componentCls}-preset > ${antCls}-tag-blue`]: {\n color: colorPrimary,\n background: controlItemBgActive,\n borderColor: colorPrimaryBorder,\n cursor: 'pointer'\n },\n [`${componentCls}-ok`]: {\n marginInlineStart: 'auto'\n }\n },\n [`${componentCls}-range-wrapper`]: {\n display: 'flex',\n position: 'relative'\n },\n [`${componentCls}-range-arrow`]: Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'none',\n marginInlineStart: inputPaddingHorizontal * 1.5,\n transition: `left ${motionDurationSlow} ease-out`\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBgElevated, boxShadowPopoverArrow)),\n [`${componentCls}-panel-container`]: {\n overflow: 'hidden',\n verticalAlign: 'top',\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n transition: `margin ${motionDurationSlow}`,\n // ======================== Layout ========================\n [`${componentCls}-panel-layout`]: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'stretch'\n },\n // ======================== Preset ========================\n [`${componentCls}-presets`]: {\n display: 'flex',\n flexDirection: 'column',\n minWidth: presetsWidth,\n maxWidth: presetsMaxWidth,\n ul: {\n height: 0,\n flex: 'auto',\n listStyle: 'none',\n overflow: 'auto',\n margin: 0,\n padding: paddingXS,\n borderInlineEnd: `${lineWidth}px ${lineType} ${colorSplit}`,\n li: Object.assign(Object.assign({}, textEllipsis), {\n borderRadius: borderRadiusSM,\n paddingInline: paddingXS,\n paddingBlock: (controlHeightSM - Math.round(fontSize * lineHeight)) / 2,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '+ li': {\n marginTop: marginXS\n },\n '&:hover': {\n background: controlItemBgHover\n }\n })\n }\n },\n // ======================== Panels ========================\n [`${componentCls}-panels`]: {\n display: 'inline-flex',\n flexWrap: 'nowrap',\n direction: 'ltr',\n [`${componentCls}-panel`]: {\n borderWidth: `0 0 ${lineWidth}px`\n },\n '&:last-child': {\n [`${componentCls}-panel`]: {\n borderWidth: 0\n }\n }\n },\n [`${componentCls}-panel`]: {\n verticalAlign: 'top',\n background: 'transparent',\n borderRadius: 0,\n borderWidth: 0,\n [`${componentCls}-content,\n table`]: {\n textAlign: 'center'\n },\n '&-focused': {\n borderColor: colorBorder\n }\n }\n }\n }),\n '&-dropdown-range': {\n padding: `${sizePopupArrow * 2 / 3}px 0`,\n '&-hidden': {\n display: 'none'\n }\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-separator`]: {\n transform: 'rotate(180deg)'\n },\n [`${componentCls}-footer`]: {\n '&-extra': {\n direction: 'rtl'\n }\n }\n }\n })\n },\n // Follow code may reuse in other components\n initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\nexport const initPickerPanelToken = token => {\n const pickerTimePanelCellHeight = 28;\n const {\n componentCls,\n controlHeightLG,\n controlHeightSM,\n colorPrimary,\n paddingXXS\n } = token;\n return {\n pickerCellCls: `${componentCls}-cell`,\n pickerCellInnerCls: `${componentCls}-cell-inner`,\n pickerTextHeight: controlHeightLG,\n pickerPanelCellWidth: controlHeightSM * 1.5,\n pickerPanelCellHeight: controlHeightSM,\n pickerDateHoverRangeBorderColor: new TinyColor(colorPrimary).lighten(20).toHexString(),\n pickerBasicCellHoverWithRangeColor: new TinyColor(colorPrimary).lighten(35).toHexString(),\n pickerPanelWithoutTimeCellHeight: controlHeightLG * 1.65,\n pickerYearMonthCellWidth: controlHeightLG * 1.5,\n pickerTimePanelColumnHeight: pickerTimePanelCellHeight * 8,\n pickerTimePanelColumnWidth: controlHeightLG * 1.4,\n pickerTimePanelCellHeight,\n pickerQuarterPanelContentHeight: controlHeightLG * 1.4,\n pickerCellPaddingVertical: paddingXXS,\n pickerCellBorderGap: 2,\n pickerControlIconSize: 7,\n pickerControlIconBorderWidth: 1.5\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('DatePicker', token => {\n const pickerToken = mergeToken(initInputToken(token), initPickerPanelToken(token));\n return [genPickerStyle(pickerToken), genPickerStatusStyle(pickerToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n focusElCls: `${token.componentCls}-focused`\n })];\n}, token => ({\n presetsWidth: 120,\n presetsMaxWidth: 200,\n zIndexPopup: token.zIndexPopupBase + 50\n}));","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport SwapRightOutlined from \"@ant-design/icons/es/icons/SwapRightOutlined\";\nimport classNames from 'classnames';\nimport { RangePicker as RCRangePicker } from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport { Components, getTimeProps } from '.';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport SizeContext from '../../config-provider/SizeContext';\nimport { FormItemInputContext } from '../../form/context';\nimport { useCompactItemContext } from '../../space/Compact';\nimport LocaleReceiver from '../../locale/LocaleReceiver';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport enUS from '../locale/en_US';\nimport { getRangePlaceholder, transPlacement2DropdownAlign } from '../util';\nimport warning from '../../_util/warning';\nimport useStyle from '../style';\nexport default function generateRangePicker(generateConfig) {\n const RangePicker = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customGetPopupContainer,\n className,\n placement,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n placeholder,\n popupClassName,\n dropdownClassName,\n status: customStatus\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"placement\", \"size\", \"disabled\", \"bordered\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"status\"]);\n const innerRef = React.useRef(null);\n const {\n getPrefixCls,\n direction,\n getPopupContainer\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const {\n format,\n showTime,\n picker\n } = props;\n const rootPrefixCls = getPrefixCls();\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let additionalOverrideProps = {};\n additionalOverrideProps = Object.assign(Object.assign(Object.assign({}, additionalOverrideProps), showTime ? getTimeProps(Object.assign({\n format,\n picker\n }, showTime)) : {}), picker === 'time' ? getTimeProps(Object.assign(Object.assign({\n format\n }, props), {\n picker\n })) : {});\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'DatePicker.RangePicker', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n // ===================== Size =====================\n const size = React.useContext(SizeContext);\n const mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n }));\n return wrapSSR( /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"DatePicker\",\n defaultLocale: enUS\n }, contextLocale => {\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n return /*#__PURE__*/React.createElement(RCRangePicker, Object.assign({\n separator: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": \"to\",\n className: `${prefixCls}-separator`\n }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)),\n disabled: mergedDisabled,\n ref: innerRef,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n placeholder: getRangePlaceholder(locale, picker, placeholder),\n suffixIcon: suffixNode,\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n allowClear: true,\n transitionName: `${rootPrefixCls}-slide-up`\n }, restProps, additionalOverrideProps, {\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-borderless`]: !bordered\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, className),\n locale: locale.lang,\n prefixCls: prefixCls,\n getPopupContainer: customGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n dropdownClassName: classNames(hashId, popupClassName || dropdownClassName)\n }));\n }));\n });\n return RangePicker;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RCPicker from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport { useCompactItemContext } from '../../space/Compact';\nimport { Components, getTimeProps } from '.';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport SizeContext from '../../config-provider/SizeContext';\nimport { FormItemInputContext } from '../../form/context';\nimport LocaleReceiver from '../../locale/LocaleReceiver';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport warning from '../../_util/warning';\nimport enUS from '../locale/en_US';\nimport { getPlaceholder, transPlacement2DropdownAlign } from '../util';\nimport useStyle from '../style';\nexport default function generatePicker(generateConfig) {\n function getPicker(picker, displayName) {\n const Picker = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customizeGetPopupContainer,\n className,\n size: customizeSize,\n bordered = true,\n placement,\n placeholder,\n popupClassName,\n dropdownClassName,\n disabled: customDisabled,\n status: customStatus\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"size\", \"bordered\", \"placement\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"disabled\", \"status\"]);\n const {\n getPrefixCls,\n direction,\n getPopupContainer\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const innerRef = React.useRef(null);\n const {\n format,\n showTime\n } = props;\n const [wrapSSR, hashId] = useStyle(prefixCls);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n }));\n const additionalProps = {\n showToday: true\n };\n let additionalOverrideProps = {};\n if (picker) {\n additionalOverrideProps.picker = picker;\n }\n const mergedPicker = picker || props.picker;\n additionalOverrideProps = Object.assign(Object.assign(Object.assign({}, additionalOverrideProps), showTime ? getTimeProps(Object.assign({\n format,\n picker: mergedPicker\n }, showTime)) : {}), mergedPicker === 'time' ? getTimeProps(Object.assign(Object.assign({\n format\n }, props), {\n picker: mergedPicker\n })) : {});\n const rootPrefixCls = getPrefixCls();\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(picker !== 'quarter', displayName, `DatePicker.${displayName} is legacy usage. Please use DatePicker[picker='${picker}'] directly.`) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, displayName || 'DatePicker', '`dropdownClassName` is deprecated. Please use `popupClassName` instead.') : void 0;\n }\n // ===================== Size =====================\n const size = React.useContext(SizeContext);\n const mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, mergedPicker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n return wrapSSR( /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"DatePicker\",\n defaultLocale: enUS\n }, contextLocale => {\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n return /*#__PURE__*/React.createElement(RCPicker, Object.assign({\n ref: innerRef,\n placeholder: getPlaceholder(locale, mergedPicker, placeholder),\n suffixIcon: suffixNode,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n allowClear: true,\n transitionName: `${rootPrefixCls}-slide-up`\n }, additionalProps, restProps, additionalOverrideProps, {\n locale: locale.lang,\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-borderless`]: !bordered\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, className),\n prefixCls: prefixCls,\n getPopupContainer: customizeGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n disabled: mergedDisabled,\n dropdownClassName: classNames(hashId, popupClassName || dropdownClassName)\n }));\n }));\n });\n if (displayName) {\n Picker.displayName = displayName;\n }\n return Picker;\n }\n const DatePicker = getPicker();\n const WeekPicker = getPicker('week', 'WeekPicker');\n const MonthPicker = getPicker('month', 'MonthPicker');\n const YearPicker = getPicker('year', 'YearPicker');\n const TimePicker = getPicker('time', 'TimePicker');\n const QuarterPicker = getPicker('quarter', 'QuarterPicker');\n return {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n };\n}","import PickerButton from '../PickerButton';\nimport generateRangePicker from './generateRangePicker';\nimport generateSinglePicker from './generateSinglePicker';\nexport const Components = {\n button: PickerButton\n};\nfunction toArray(list) {\n if (!list) {\n return [];\n }\n return Array.isArray(list) ? list : [list];\n}\nexport function getTimeProps(props) {\n const {\n format,\n picker,\n showHour,\n showMinute,\n showSecond,\n use12Hours\n } = props;\n const firstFormat = toArray(format)[0];\n const showTimeObj = Object.assign({}, props);\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 if ((firstFormat.includes('a') || firstFormat.includes('A')) && use12Hours === undefined) {\n showTimeObj.use12Hours = true;\n }\n }\n if (picker === 'time') {\n return showTimeObj;\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 return {\n showTime: showTimeObj\n };\n}\nconst DataPickerPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nfunction generatePicker(generateConfig) {\n // =========================== Picker ===========================\n const {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n } = generateSinglePicker(generateConfig);\n // ======================== Range Picker ========================\n const RangePicker = generateRangePicker(generateConfig);\n const MergedDatePicker = DatePicker;\n MergedDatePicker.WeekPicker = WeekPicker;\n MergedDatePicker.MonthPicker = MonthPicker;\n MergedDatePicker.YearPicker = YearPicker;\n MergedDatePicker.RangePicker = RangePicker;\n MergedDatePicker.TimePicker = TimePicker;\n MergedDatePicker.QuarterPicker = QuarterPicker;\n return MergedDatePicker;\n}\nexport default generatePicker;","import * as React from 'react';\nimport Button from '../button';\nexport default function PickerButton(props) {\n return /*#__PURE__*/React.createElement(Button, Object.assign({\n size: \"small\",\n type: \"primary\"\n }, props));\n}","import dayjsGenerateConfig from \"rc-picker/es/generate/dayjs\";\nimport genPurePanel from '../_util/PurePanel';\nimport generatePicker from './generatePicker';\nconst DatePicker = generatePicker(dayjsGenerateConfig);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(DatePicker, 'picker');\nDatePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default DatePicker;","// This icon file is generated automatically.\nvar UploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"upload\", \"theme\": \"outlined\" };\nexport default UploadOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport UploadOutlinedSvg from \"@ant-design/icons-svg/es/asn/UploadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar UploadOutlined = function UploadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: UploadOutlinedSvg\n }));\n};\nUploadOutlined.displayName = 'UploadOutlined';\nexport default /*#__PURE__*/React.forwardRef(UploadOutlined);","import { UploadOutlined } from \"@ant-design/icons\";\r\nimport { Button, Upload } from \"antd\";\r\nimport type { UploadProps } from \"antd/es/upload\";\r\n\r\nconst UploadFileComponent = ({propsFile, title }: { propsFile?: UploadProps, title?: string }) => {\r\n\r\n const propsDefault: UploadProps = {\r\n name: 'file',\r\n beforeUpload: () => false,\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {propsFile?.children}\r\n \r\n \r\n );\r\n};\r\nexport default UploadFileComponent;\r\n","import { useEffect, useState } from \"react\";\r\nimport dayjs from \"dayjs\";\r\nimport { DownloadOutlined } from \"@ant-design/icons\";\r\nimport { update, cloneDeep, get } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../app/hooks\";\r\nimport { FileTypeEnum } from \"../../../utils/enum\";\r\nimport { createRecruimentAction, getRecruimentDetail } from \"../slice\";\r\nimport { IRecruiment, IRecruimentAction } from \"../recruiment.model\";\r\nimport {\r\n Card,\r\n Form,\r\n Input,\r\n Divider,\r\n Button,\r\n Row,\r\n Col,\r\n DatePicker,\r\n Select,\r\n UploadProps,\r\n message,\r\n UploadFile,\r\n} from \"antd\";\r\nimport { useHistory, useParams } from \"react-router\";\r\nimport { DegreeOtp, GenderEnum, RankingOtp } from \"../../../utils/enum\";\r\nimport moment from \"moment\";\r\nimport UploadFileComponent from \"../../../Layout/uploadFile\";\r\nimport { uploadFile } from \"../../../Layout/file/services\";\r\nimport { REGEX } from \"../../../utils\";\r\n\r\nconst CreateRecruimentComponent = () => {\r\n //#region declare\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const dataReducer = useAppSelector((state) => state.screens.recruiment);\r\n const [form] = Form.useForm();\r\n const [dataAction, setDataAction] = useState({});\r\n const { id }: any = useParams();\r\n //#endregion declare\r\n\r\n const goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const _onSubmitCourse = async () => {\r\n const body = { ...dataAction } as IRecruiment;\r\n await dispatch(\r\n createRecruimentAction({\r\n body,\r\n type: !id ? \"addNew\" : null,\r\n id,\r\n }) as any\r\n );\r\n history.goBack();\r\n };\r\n const onChangeValue = (valueUp: any, path: string) => {\r\n const newData = cloneDeep({ ...dataAction });\r\n update(newData, path, function (value) {\r\n return valueUp;\r\n });\r\n setDataAction({ ...newData });\r\n };\r\n const _onFinish = async () => {\r\n _onSubmitCourse();\r\n };\r\n const _onDownloadCv = (cvId?: number) => {\r\n if (cvId) {\r\n const url = process.env.REACT_APP_API_URL + \"file/download/\" + cvId;\r\n window.open(url, \"_blank\");\r\n }\r\n };\r\n useEffect(() => {\r\n const getDetail = async () => {\r\n if (id) {\r\n await dispatch(getRecruimentDetail({ id }) as any);\r\n }\r\n };\r\n getDetail();\r\n }, [dispatch, id]);\r\n\r\n useEffect(() => {\r\n if (dataReducer.detail && id) {\r\n const newDetail: any = cloneDeep(dataReducer.detail);\r\n newDetail.birthday = newDetail.birthday\r\n ? moment(newDetail.birthday)\r\n : undefined;\r\n newDetail.graduationYear = newDetail.graduationYear\r\n ? moment(newDetail.graduationYear, \"YYYY\")\r\n : undefined;\r\n setDataAction(dataReducer.detail as any);\r\n form.setFieldsValue(newDetail);\r\n if (dataReducer.detail.cv && dataReducer.detail.cvId) {\r\n setFileList([\r\n { uid: `${dataReducer.detail.cvId}`, name: dataReducer.detail.cv },\r\n ]);\r\n } else {\r\n setFileList([]);\r\n }\r\n }\r\n }, [dataReducer, id, setDataAction, form]);\r\n\r\n const [fileList, setFileList] = useState[]>([]);\r\n\r\n const propsFile: UploadProps = {\r\n onChange: async (info) => {\r\n if (info.file.status !== \"removed\") {\r\n const data = await uploadFile({\r\n file: info.file,\r\n name: info.file.name,\r\n minType: info.file.type,\r\n type: FileTypeEnum.CV,\r\n });\r\n if (data) {\r\n const cvId = get(data, \"data.id\");\r\n const cv = get(data, \"data.name\");\r\n form.setFieldsValue({ cvId });\r\n setDataAction({ ...dataAction, cvId, cv });\r\n }\r\n setFileList([info.file]);\r\n } else if (info.file.status === \"removed\") {\r\n form.setFieldsValue({ cvId: undefined });\r\n setDataAction({ ...dataAction, cvId: undefined, cv: undefined });\r\n setFileList([]);\r\n } else if (info.file.status === \"error\") {\r\n message.error(`${info.file.name} file upload failed.`);\r\n }\r\n },\r\n fileList,\r\n children: (\r\n <>\r\n {\" \"}\r\n {dataAction.cvId && (\r\n _onDownloadCv(dataAction.cvId)}\r\n icon={}\r\n >\r\n Tải xuống CV\r\n \r\n )}\r\n \r\n ),\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `name`)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n onChangeValue(value, `birthday`)}\r\n value={\r\n dataAction.birthday\r\n ? dayjs(moment(dataAction.birthday).format(\"yyyy/MM/DD\"))\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(value, `gender`)}\r\n // onClear={clearBrand}\r\n allowClear\r\n value={dataAction.gender}\r\n options={[\r\n {\r\n label: \"--\",\r\n value: \"\",\r\n },\r\n {\r\n label: \"Nam\",\r\n value: GenderEnum.MALE,\r\n },\r\n {\r\n label: \"Nữ\",\r\n value: GenderEnum.FEMALE,\r\n },\r\n ]}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n onChangeValue(e.target.value, `email`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `phone`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `specialized`)}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(value, `ranking`)}\r\n // onClear={clearBrand}\r\n allowClear\r\n value={dataAction.ranking}\r\n options={RankingOtp}\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `nominee`)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n onChangeValue(e.target.value, `trainingPlaces`)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n onChangeValue(value, `degree`)}\r\n // onClear={clearBrand}\r\n allowClear\r\n value={dataAction.degree}\r\n options={DegreeOtp}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n onChangeValue(value?.year().toString(), `graduationYear`)\r\n }\r\n picker=\"year\"\r\n value={\r\n dataAction.graduationYear\r\n ? dayjs(\r\n moment(dataAction.graduationYear, \"YYYY\").format(\r\n \"YYYY\"\r\n ),\r\n \"YYYY\"\r\n )\r\n : undefined\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateRecruimentComponent;\r\n","import { Button, Card, Col, Input, Row } from \"antd\";\r\nimport _, { debounce } from \"lodash\";\r\nimport { memo, useMemo, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Label from \"../../../Layout/Form/Label\";\r\nimport { ISearchRecruiment } from \"../recruiment.model\";\r\nimport { useAsyncFn } from \"react-use\";\r\nimport { getRecruimentsAction } from \"../slice\";\r\n\r\nconst defaultState: ISearchRecruiment = {};\r\n\r\nconst SearchComponent = () => {\r\n //#region declare\r\n const dispatch = useDispatch();\r\n\r\n const [dataState, dataStateFn] = useAsyncFn(\r\n async (params: ISearchRecruiment) => {\r\n return dispatch(getRecruimentsAction(params) as any);\r\n }\r\n );\r\n\r\n const debounceLoadData = useMemo(\r\n () =>\r\n debounce((query: ISearchRecruiment) => {\r\n return dataStateFn(query);\r\n }, 500),\r\n [dataStateFn]\r\n );\r\n const [state, setState] = useState(_.cloneDeep(defaultState));\r\n //#endregion declare\r\n const onChangeState = (query: ISearchRecruiment) => {\r\n // set(state, path, value);\r\n setState(query);\r\n return debounceLoadData(query);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default memo(SearchComponent);\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Button, Card, Dropdown, Image, Menu, Modal, Row, Table } from \"antd\";\r\nimport { useAppSelector } from \"../../app/hooks\";\r\nimport SearchComponent from \"./component/searchComponent\";\r\nimport { ReactComponent as Kebab } from \"../../assets/img/kebab.svg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n EditOutlined,\r\n DeleteOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { deleteRecruimentAction, getRecruimentsAction } from \"./slice\";\r\nimport { IRecruiment } from \"./recruiment.model\";\r\nimport Search from \"../../Layout/search\";\r\nimport { IUserState } from \"../user/propState\";\r\nimport { isCheckPermisson } from \"../../utils\";\r\nimport { PERMISSION_ENUM } from \"../../utils/permisson.enum\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst RecruimentPage = () => {\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState({\r\n data: [],\r\n count: 0,\r\n currentPage: 1,\r\n });\r\n\r\n const userState = useAppSelector((state) => state.screens.user);\r\n const permissionObj = userState.permissionObj;\r\n const isRecruimentCreate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.RECRUIMENT_CREATE\r\n );\r\n const isRecruimentUpdate = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.RECRUIMENT_UPDATE\r\n );\r\n const isRecruimentList = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.RECRUIMENT_LIST\r\n );\r\n const isRecruimentDelete = isCheckPermisson(\r\n permissionObj,\r\n PERMISSION_ENUM.RECRUIMENT_DELETE\r\n );\r\n\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n render: (_text: string, record: IRecruiment, index: number) => {\r\n return

{index + 1}

;\r\n },\r\n },\r\n {\r\n title: \"Họ và tên\",\r\n key: \"name\",\r\n dataIndex: \"name\",\r\n align: \"center\",\r\n render: (_text: string, record: IRecruiment, index: number) => {\r\n return <>{record.name};\r\n },\r\n },\r\n {\r\n title: \"Số điện thoại\",\r\n key: \"phone\",\r\n dataIndex: \"phone\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"name\",\r\n key: \"email\",\r\n dataIndex: \"email\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Vị trí ứng tuyển\",\r\n key: \"nominee\",\r\n dataIndex: \"nominee\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Chuyên ngành đào tạo\",\r\n key: \"specialized\",\r\n dataIndex: \"specialized\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Nơi đào tạo\",\r\n key: \"trainingPlaces\",\r\n dataIndex: \"trainingPlaces\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"Trình độ\",\r\n key: \"ranking\",\r\n dataIndex: \"ranking\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"CV\",\r\n key: \"cv\",\r\n dataIndex: \"cv\",\r\n align: \"center\",\r\n },\r\n {\r\n title: \"\",\r\n key: \"action\",\r\n align: \"right\" as \"right\",\r\n render: (_text: string, record: IRecruiment, index: number) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n const dataReducer = useAppSelector((state) => state.screens.recruiment);\r\n const menu = (item: IRecruiment, index: number) => {\r\n return (\r\n \r\n {isRecruimentUpdate && (\r\n }>\r\n \r\n Chỉnh sửa\r\n \r\n \r\n )}\r\n {isRecruimentDelete && (\r\n }\r\n danger\r\n onClick={_confirmDelete(item)}\r\n >\r\n Xóa\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n isRecruimentList && dispatch(getRecruimentsAction({}) as any);\r\n }, [dispatch, isRecruimentList]);\r\n\r\n useEffect(() => {\r\n if (dataReducer) {\r\n setState(dataReducer);\r\n }\r\n }, [dataReducer]);\r\n\r\n const _confirmDelete = (item: IRecruiment) => () => {\r\n confirm({\r\n title: `Bạn có chắc chắn muốn xóa người dùng không?`,\r\n icon: ,\r\n content: item.name,\r\n okText: \"Đồng ý\",\r\n cancelText: \"Hủy\",\r\n onOk() {\r\n const id = item.id ? item.id : 0;\r\n dispatch(deleteRecruimentAction({ id }) as any);\r\n },\r\n });\r\n };\r\n\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Tuyển dụng

\r\n \r\n }\r\n className=\"rounded-none\"\r\n extra={\r\n isRecruimentCreate && (\r\n \r\n \r\n \r\n )\r\n }\r\n >\r\n {isRecruimentList && (\r\n \r\n \r\n \r\n )}\r\n {isRecruimentList && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default RecruimentPage;\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","/**\n * view 中三层 group 分层 key\n */\nexport enum LAYER {\n /** 前景层 */\n FORE = 'fore',\n /** 中间层 */\n MID = 'mid',\n /** 背景层 */\n BG = 'bg',\n}\n\n/**\n * 组件在画布的布局方位 12 方位\n */\nexport enum DIRECTION {\n TOP = 'top',\n TOP_LEFT = 'top-left',\n TOP_RIGHT = 'top-right',\n RIGHT = 'right',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT = 'left',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n BOTTOM = 'bottom',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_RIGHT = 'bottom-right',\n RADIUS = 'radius',\n CIRCLE = 'circle',\n // no direction information\n NONE = 'none',\n}\n\n/**\n * 组件的类型,可能会影响到布局算法\n */\nexport enum COMPONENT_TYPE {\n /** axis 组件 */\n AXIS = 'axis',\n /** grid 组件 */\n GRID = 'grid',\n /** legend 组件 */\n LEGEND = 'legend',\n /** tooltip 组件 */\n TOOLTIP = 'tooltip',\n /** annotation 组件 */\n ANNOTATION = 'annotation',\n /** 缩略轴组件 */\n SLIDER = 'slider',\n /** 滚动条组件 */\n SCROLLBAR = 'scrollbar',\n /** 其他组件,自定义组件 */\n OTHER = 'other',\n}\n\n/**\n * 三层 group 的 z index\n */\nexport const GROUP_Z_INDEX = {\n FORE: 3,\n MID: 2,\n BG: 1,\n};\n\n/**\n * View 的生命周期阶段(和 3.x 的生命周期略有不同)\n * 我们需要先确定在那写场景需要用到生命周期,如果只是为了在生命周期插入一下什么组件之类的,那么在现有架构就是不需要的\n */\nexport enum VIEW_LIFE_CIRCLE {\n BEFORE_RENDER = 'beforerender',\n AFTER_RENDER = 'afterrender',\n\n BEFORE_PAINT = 'beforepaint',\n AFTER_PAINT = 'afterpaint',\n\n BEFORE_CHANGE_DATA = 'beforechangedata',\n AFTER_CHANGE_DATA = 'afterchangedata',\n\n BEFORE_CLEAR = 'beforeclear',\n AFTER_CLEAR = 'afterclear',\n\n BEFORE_DESTROY = 'beforedestroy',\n\n BEFORE_CHANGE_SIZE = 'beforechangesize',\n AFTER_CHANGE_SIZE = 'afterchangesize',\n}\n\n/**\n * geometry 的生命周期\n */\nexport enum GEOMETRY_LIFE_CIRCLE {\n BEFORE_DRAW_ANIMATE = 'beforeanimate',\n AFTER_DRAW_ANIMATE = 'afteranimate',\n\n BEFORE_RENDER_LABEL = 'beforerenderlabel',\n AFTER_RENDER_LABEL = 'afterrenderlabel',\n}\n\n/**\n * 绘图区的事件列表\n */\nexport enum PLOT_EVENTS {\n // mouse 事件\n MOUSE_ENTER = 'plot:mouseenter',\n MOUSE_DOWN = 'plot:mousedown',\n MOUSE_MOVE = 'plot:mousemove',\n MOUSE_UP = 'plot:mouseup',\n MOUSE_LEAVE = 'plot:mouseleave',\n // 移动端事件\n TOUCH_START = 'plot:touchstart',\n TOUCH_MOVE = 'plot:touchmove',\n TOUCH_END = 'plot:touchend',\n TOUCH_CANCEL = 'plot:touchcancel',\n // click 事件\n CLICK = 'plot:click',\n DBLCLICK = 'plot:dblclick',\n CONTEXTMENU = 'plot:contextmenu',\n\n LEAVE = 'plot:leave',\n ENTER = 'plot:enter',\n}\n\n/**\n * Element 图形交互状态\n */\nexport enum ELEMENT_STATE {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n SELECTED = 'selected',\n DEFAULT = 'default',\n}\n\n/** 参与分组的图形属性名 */\nexport const GROUP_ATTRS = ['color', 'shape', 'size'];\n/** 存储原始数据的字段名 */\nexport const FIELD_ORIGIN = '_origin';\n/** 最小的图表宽度 */\nexport const MIN_CHART_WIDTH = 1;\n/** 最小的图表高度 */\nexport const MIN_CHART_HEIGHT = 1;\n/** 辅助组件占图表的尺寸的最大比例:如图表上方的图例最多占图表高度的25% */\nexport const COMPONENT_MAX_VIEW_PERCENTAGE = 0.25;\n","/**\n * 创建DOM 节点\n * @param {String} str Dom 字符串\n * @return {HTMLElement} DOM 节点\n */\n\nlet TABLE:HTMLTableElement;\nlet TABLE_TR:HTMLTableRowElement;\nlet FRAGMENT_REG:RegExp;\nlet CONTAINERS:{\n '*': HTMLDivElement;\n [key:string]: any;\n};\n\nfunction initConstants() {\n TABLE = document.createElement('table');\n TABLE_TR = document.createElement('tr');\n FRAGMENT_REG = /^\\s*<(\\w+|!)[^>]*>/;\n CONTAINERS = {\n tr: document.createElement('tbody'),\n tbody: TABLE,\n thead: TABLE,\n tfoot: TABLE,\n td: TABLE_TR,\n th: TABLE_TR,\n '*': document.createElement('div'),\n };\n}\n\nexport default function createDom(str:string): any {\n if (!TABLE) {\n initConstants();\n }\n let name = FRAGMENT_REG.test(str) && RegExp.$1;\n if (!name || !(name in CONTAINERS)) {\n name = '*';\n }\n const container = CONTAINERS[name];\n str = typeof str === 'string' ? str.replace(/(^\\s*)|(\\s*$)/g, '') : str;\n container.innerHTML = '' + str;\n const dom = container.childNodes[0];\n if (dom && container.contains(dom)) {\n container.removeChild(dom);\n }\n return dom;\n}\n","import { IG } from '../dependents';\n\nconst ENGINES: Record = {};\n\n/**\n * 通过名字获取渲染 engine\n * @param name 渲染引擎名字\n * @returns G engine\n */\nexport function getEngine(name: string): IG {\n const G = ENGINES[name];\n\n if (!G) {\n throw new Error(`G engine '${name}' is not exist, please register it at first.`);\n }\n\n return G;\n}\n\n/**\n * 注册渲染引擎\n * @param name\n * @param engine\n */\nexport function registerEngine(name: string, engine: IG) {\n ENGINES[name] = engine;\n}\n","export default function modifyCSS(dom: HTMLElement, css: { [key:string]: any }): HTMLElement {\n if (dom) {\n for (const key in css) {\n if (css.hasOwnProperty(key)) {\n dom.style[key] = css[key];\n }\n }\n }\n return dom;\n}\n","import { MIN_CHART_HEIGHT, MIN_CHART_WIDTH } from '../constant';\nimport { Size } from '../interface';\n\n/**\n * get the element's bounding size\n * @param ele dom element\n * @returns the element width and height\n */\nfunction getElementSize(ele: HTMLElement): Size {\n const style = getComputedStyle(ele);\n\n return {\n width:\n (ele.clientWidth || parseInt(style.width, 10)) -\n parseInt(style.paddingLeft, 10) -\n parseInt(style.paddingRight, 10),\n height:\n (ele.clientHeight || parseInt(style.height, 10)) -\n parseInt(style.paddingTop, 10) -\n parseInt(style.paddingBottom, 10),\n };\n}\n\n/**\n * is value a valid number\n * @param v the input value\n * @returns whether it is a number\n */\nfunction isNumber(v: any): boolean {\n return typeof v === 'number' && !isNaN(v);\n}\n\n/**\n * @ignore\n * calculate the chart size\n * @param ele DOM element\n * @param autoFit should auto fit\n * @param width chart width which is set by user\n * @param height chart height which is set by user\n * @returns the chart width and height\n */\nexport function getChartSize(ele: HTMLElement, autoFit: boolean, width: number, height: number): Size {\n let w = width;\n let h = height;\n\n if (autoFit) {\n const size = getElementSize(ele);\n\n w = size.width ? size.width : w;\n h = size.height ? size.height : h;\n }\n\n return {\n width: Math.max(isNumber(w) ? w : MIN_CHART_WIDTH, MIN_CHART_WIDTH),\n height: Math.max(isNumber(h) ? h : MIN_CHART_HEIGHT, MIN_CHART_HEIGHT),\n };\n}\n\n/**\n * @ignore\n * remove html element from its parent\n * @param dom\n */\nexport function removeDom(dom: HTMLElement) {\n const parent = dom.parentNode;\n\n if (parent) {\n parent.removeChild(dom);\n }\n}\n\n/** @ignore */\nexport { createDom, modifyCSS } from '@antv/dom-util';\n","import EE from '@antv/event-emitter';\n\ninterface BaseCfg {\n visible?: boolean;\n}\n\n/**\n * G2 Chart、View、Geometry 以及 Element 等的基类,提供事件以及一些通用的方法。\n */\nexport default class Base extends EE {\n /** 是否可见 */\n public visible: boolean;\n /** 标识对象是否已销毁 */\n public destroyed: boolean = false;\n\n constructor(cfg: BaseCfg) {\n super();\n const { visible = true } = cfg;\n this.visible = visible;\n }\n\n /**\n * 显示。\n */\n public show() {\n const visible = this.visible;\n if (!visible) {\n this.changeVisible(true);\n }\n }\n\n /**\n * 隐藏。\n */\n public hide() {\n const visible = this.visible;\n if (visible) {\n this.changeVisible(false);\n }\n }\n\n /**\n * 销毁。\n */\n public destroy() {\n this.off();\n this.destroyed = true;\n }\n\n /**\n * 显示或者隐藏。\n * @param visible\n * @returns\n */\n public changeVisible(visible: boolean) {\n if (this.visible === visible) {\n return;\n }\n this.visible = visible;\n }\n}\n","export const DEFAULT_Y = 0; // 默认的 y 的值\n\n// 偏移之后,间距\nexport const MARGIN_RATIO = 1 / 2;\nexport const DODGE_RATIO = 1 / 2;\n\n// 散点分开之后,距离边界的距离\nexport const GAP = 0.05;\n","import * as _ from '@antv/util';\nimport { DEFAULT_Y } from '../constant';\nimport { AdjustCfg, Data, Range } from '../interface';\n\nexport type AdjustConstructor = new (cfg: any) => Adjust;\n\nexport interface DimValuesMapType {\n [dim: string]: number[];\n}\n\nexport default abstract class Adjust {\n /** 参与调整的维度 */\n public adjustNames: string[];\n /** x 维度对应的字段 */\n public xField: string;\n /** y 维度对应的字段 */\n public yField: string;\n\n // Dodge 属性\n /** 调整占单位宽度的比例,例如:占 2 个分类间距的 1 / 2 */\n public dodgeRatio: number;\n /** 调整过程中 2 个数据的间距,以 dodgeRatio 为分母 */\n public marginRatio: number;\n /** 指定进行 dodge 的字段 */\n public dodgeBy: string;\n /** 自定义 offset */\n public customOffset: ((data: any, range: any) => number) | number;\n\n // Stack 属性\n public height: number;\n public size: number;\n public reverseOrder: boolean;\n\n /** 像素级组间距 */\n public intervalPadding: number;\n /** 像素级组内间距 */\n public dodgePadding: number;\n /** x维度长度,计算归一化padding使用 */\n public xDimensionLegenth: number;\n /** 分组数 */\n public groupNum: number;\n\n // 图形宽度相关配置\n /** 用户配置宽度 */\n public defaultSize: number;\n /** 最大宽度约束 */\n public maxColumnWidth: number;\n /** 最小宽度约束 */\n public minColumnWidth: number;\n /** 宽度比例 */\n public columnWidthRatio: number;\n\n /** 用户自定义的dimValuesMap */\n public dimValuesMap: DimValuesMapType;\n\n constructor(cfg: AdjustCfg & { dimValuesMap?: DimValuesMapType }) {\n const { xField, yField, adjustNames = ['x', 'y'], dimValuesMap } = cfg;\n\n this.adjustNames = adjustNames;\n this.xField = xField;\n this.yField = yField;\n this.dimValuesMap = dimValuesMap;\n }\n\n // 需要各自实现的方法\n public abstract process(dataArray: Data[][]): Data[][];\n\n /**\n * 查看维度是否是 adjust 字段\n * @param dim\n */\n public isAdjust(dim: string): boolean {\n return this.adjustNames.indexOf(dim) >= 0;\n }\n\n protected getAdjustRange(dim: string, dimValue: number, values: number[]): Range {\n const { yField } = this;\n\n const index = values.indexOf(dimValue);\n const length = values.length;\n\n let pre;\n let next;\n\n // 没有 y 字段,但是需要根据 y 调整\n if (!yField && this.isAdjust('y')) {\n pre = 0;\n next = 1;\n } else if (length > 1) {\n // 如果以其开头,则取之,否则取他前面一个\n pre = values[index === 0 ? 0 : index - 1];\n // 如果以其结尾,则取之,否则取他后面一个\n next = values[index === length - 1 ? length - 1 : index + 1];\n\n if (index !== 0) {\n pre += (dimValue - pre) / 2;\n } else {\n pre -= (next - dimValue) / 2;\n }\n\n if (index !== length - 1) {\n next -= (next - dimValue) / 2;\n } else {\n next += (dimValue - values[length - 2]) / 2;\n }\n } else {\n pre = dimValue === 0 ? 0 : dimValue - 0.5;\n next = dimValue === 0 ? 1 : dimValue + 0.5;\n }\n\n return {\n pre,\n next,\n };\n }\n\n protected adjustData(groupedDataArray: Data[][], mergedData: Data[]) {\n // 所有调整维度的值数组\n const dimValuesMap = this.getDimValues(mergedData);\n\n // 按照每一个分组来进行调整\n _.each(groupedDataArray, (dataArray, index) => {\n // 遍历所有数据集合\n // 每个分组中,分别按照不同的 dim 进行调整\n _.each(dimValuesMap, (values: number[], dim: string) => {\n // 根据不同的度量分别调整位置\n this.adjustDim(dim, values, dataArray, index);\n });\n });\n }\n\n /**\n * 对数据进行分组adjustData\n * @param data 数据\n * @param dim 分组的字段\n * @return 分组结果\n */\n protected groupData(data: Data[], dim: string): { [dim: string]: Data[] } {\n // 补齐数据空数据为默认值\n _.each(data, (record: Data) => {\n if (record[dim] === undefined) {\n record[dim] = DEFAULT_Y;\n }\n });\n\n // 按照 dim 维度分组\n return _.groupBy(data, dim);\n }\n\n /** @override */\n protected adjustDim(dim: string, values: number[], data: Data[], index?: number): void {}\n\n /**\n * 获取可调整度量对应的值\n * @param mergedData 数据\n * @return 值的映射\n */\n private getDimValues(mergedData: Data[]): DimValuesMapType {\n const { xField, yField } = this;\n\n const dimValuesMap: DimValuesMapType = _.assign({}, this.dimValuesMap);\n\n // 所有的维度\n const dims = [];\n if (xField && this.isAdjust('x')) {\n dims.push(xField);\n }\n if (yField && this.isAdjust('y')) {\n dims.push(yField);\n }\n\n dims.forEach((dim: string): void => {\n if (dimValuesMap && dimValuesMap[dim]) {\n return;\n }\n // 在每个维度上,所有的值\n dimValuesMap[dim] = _.valuesOfKey(mergedData, dim).sort((v1, v2) => v1 - v2) as number[];\n });\n\n // 只有一维的情况下,同时调整 y,赋予默认值\n if (!yField && this.isAdjust('y')) {\n const dim = 'y';\n dimValuesMap[dim] = [DEFAULT_Y, 1]; // 默认分布在 y 轴的 0 与 1 之间\n }\n\n return dimValuesMap;\n }\n}\n","import Adjust, { AdjustConstructor } from './adjusts/adjust';\n\ninterface AdjustMapType {\n [type: string]: AdjustConstructor;\n}\n\nconst ADJUST_MAP: AdjustMapType = {};\n\n/**\n * 根据类型获取 Adjust 类\n * @param type\n */\nconst getAdjust = (type: string): AdjustConstructor => {\n return ADJUST_MAP[type.toLowerCase()];\n};\n\n/**\n * 注册自定义 Adjust\n * @param type\n * @param ctor\n */\nconst registerAdjust = (type: string, ctor: AdjustConstructor): void => {\n // 注册的时候,需要校验 type 重名,不区分大小写\n if (getAdjust(type)) {\n throw new Error(`Adjust type '${type}' existed.`);\n }\n // 存储到 map 中\n ADJUST_MAP[type.toLowerCase()] = ctor;\n};\n\nexport { getAdjust, registerAdjust, Adjust };\n\nexport * from './interface';\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 */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __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\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as _ from '@antv/util';\nimport { DODGE_RATIO, MARGIN_RATIO } from '../constant';\nimport { Data, DodgeCfg, Range } from '../interface';\nimport Adjust from './adjust';\n\nexport default class Dodge extends Adjust {\n private cacheMap: { [key: string]: any } = {};\n private adjustDataArray: Data[][] = [];\n private mergeData: Data[] = [];\n\n constructor(cfg: DodgeCfg) {\n super(cfg);\n const {\n marginRatio = MARGIN_RATIO,\n dodgeRatio = DODGE_RATIO,\n dodgeBy,\n intervalPadding,\n dodgePadding,\n xDimensionLength,\n groupNum,\n defaultSize,\n maxColumnWidth,\n minColumnWidth,\n columnWidthRatio,\n customOffset\n } = cfg;\n this.marginRatio = marginRatio;\n this.dodgeRatio = dodgeRatio;\n this.dodgeBy = dodgeBy;\n this.intervalPadding = intervalPadding;\n this.dodgePadding = dodgePadding;\n this.xDimensionLegenth = xDimensionLength;\n this.groupNum = groupNum;\n this.defaultSize = defaultSize;\n this.maxColumnWidth = maxColumnWidth;\n this.minColumnWidth = minColumnWidth;\n this.columnWidthRatio = columnWidthRatio;\n this.customOffset = customOffset;\n }\n\n public process(groupDataArray: Data[][]): Data[][] {\n const groupedDataArray = _.clone(groupDataArray);\n // 将数据数组展开一层\n const mergeData = _.flatten(groupedDataArray);\n\n const { dodgeBy } = this;\n\n // 如果指定了分组 dim 的字段\n const adjustDataArray = dodgeBy ? _.group(mergeData, dodgeBy) : groupedDataArray;\n\n this.cacheMap = {};\n this.adjustDataArray = adjustDataArray;\n this.mergeData = mergeData;\n\n this.adjustData(adjustDataArray, mergeData);\n\n this.adjustDataArray = [];\n this.mergeData = [];\n\n return groupedDataArray;\n }\n\n protected adjustDim(dim: string, values: number[], data: Data[], frameIndex: number): any[] {\n const { customOffset } = this;\n const map = this.getDistribution(dim);\n const groupData = this.groupData(data, dim); // 根据值分组\n \n _.each(groupData, (group, key) => {\n let range: Range;\n\n // xField 中只有一个值,不需要做 dodge\n if (values.length === 1) {\n range = {\n pre: values[0] - 1,\n next: values[0] + 1,\n };\n } else {\n // 如果有多个,则需要获取调整的范围\n range = this.getAdjustRange(dim, parseFloat(key), values);\n }\n _.each(group, (d) => {\n const value = d[dim];\n const valueArr = map[value];\n const valIndex = valueArr.indexOf(frameIndex);\n if (!_.isNil(customOffset)) {\n const { pre, next } = range;\n d[dim] = _.isFunction(customOffset) ? customOffset(d, range) : (pre + next) / 2 + customOffset;\n } else {\n d[dim] = this.getDodgeOffset(range, valIndex, valueArr.length);\n }\n });\n });\n return [];\n }\n\n private getDodgeOffset(range: Range, idx: number, len: number): number {\n const {\n dodgeRatio,\n marginRatio,\n intervalPadding,\n dodgePadding,\n } = this;\n const { pre, next } = range;\n\n const tickLength = next - pre;\n let position;\n // 分多种输入情况\n if (!_.isNil(intervalPadding) && _.isNil(dodgePadding) && intervalPadding >= 0) {\n // 仅配置intervalPadding\n const offset = this.getIntervalOnlyOffset(len, idx);\n position = pre + offset;\n } else if (!_.isNil(dodgePadding) && _.isNil(intervalPadding) && dodgePadding >= 0) {\n // 仅配置dodgePadding\n const offset = this.getDodgeOnlyOffset(len, idx);\n position = pre + offset;\n } else if (\n !_.isNil(intervalPadding) &&\n !_.isNil(dodgePadding) &&\n intervalPadding >= 0 &&\n dodgePadding >= 0\n ) {\n // 同时配置intervalPadding和dodgePadding\n const offset = this.getIntervalAndDodgeOffset(len, idx);\n position = pre + offset;\n } else {\n // 默认情况\n const width = (tickLength * dodgeRatio) / len;\n const margin = marginRatio * width;\n const offset =\n (1 / 2) * (tickLength - len * width - (len - 1) * margin) +\n ((idx + 1) * width + idx * margin) -\n (1 / 2) * width -\n (1 / 2) * tickLength;\n position = (pre + next) / 2 + offset;\n }\n return position;\n }\n\n private getIntervalOnlyOffset(len: number, idx: number): number {\n const {\n defaultSize,\n intervalPadding,\n xDimensionLegenth,\n groupNum,\n dodgeRatio,\n maxColumnWidth,\n minColumnWidth,\n columnWidthRatio,\n } = this;\n const normalizedIntervalPadding = intervalPadding / xDimensionLegenth;\n let normalizedDodgePadding = (1 - (groupNum - 1) * normalizedIntervalPadding) / groupNum * dodgeRatio / (len - 1);\n let geomWidth = ((1 - normalizedIntervalPadding * (groupNum - 1)) / groupNum - normalizedDodgePadding * (len - 1)) / len;\n // 根据columnWidthRatio/defaultSize/maxColumnWidth/minColumnWidth调整宽度\n geomWidth = (!_.isNil(columnWidthRatio)) ? 1 / groupNum / len * columnWidthRatio : geomWidth;\n if (!_.isNil(maxColumnWidth)) {\n const normalizedMaxWidht = maxColumnWidth / xDimensionLegenth;\n geomWidth = Math.min(geomWidth, normalizedMaxWidht);\n }\n if (!_.isNil(minColumnWidth)) {\n const normalizedMinWidht = minColumnWidth / xDimensionLegenth;\n geomWidth = Math.max(geomWidth, normalizedMinWidht);\n }\n geomWidth = defaultSize ? (defaultSize / xDimensionLegenth) : geomWidth;\n // 调整组内间隔\n normalizedDodgePadding = ((1 - (groupNum - 1) * normalizedIntervalPadding) / groupNum - len * geomWidth) / (len - 1);\n const offset =\n ((1 / 2 + idx) * geomWidth + idx * normalizedDodgePadding +\n (1 / 2) * normalizedIntervalPadding) * groupNum -\n normalizedIntervalPadding / 2;\n return offset;\n }\n\n private getDodgeOnlyOffset(len: number, idx: number): number {\n const {\n defaultSize,\n dodgePadding,\n xDimensionLegenth,\n groupNum,\n marginRatio,\n maxColumnWidth,\n minColumnWidth,\n columnWidthRatio,\n } = this;\n const normalizedDodgePadding = dodgePadding / xDimensionLegenth;\n let normalizedIntervalPadding = 1 * marginRatio / (groupNum - 1);\n let geomWidth = ((1 - normalizedIntervalPadding * (groupNum - 1)) / groupNum - normalizedDodgePadding * (len - 1)) / len;\n // 根据columnWidthRatio/defaultSize/maxColumnWidth/minColumnWidth调整宽度\n geomWidth = columnWidthRatio ? 1 / groupNum / len * columnWidthRatio : geomWidth;\n if (!_.isNil(maxColumnWidth)) {\n const normalizedMaxWidht = maxColumnWidth / xDimensionLegenth;\n geomWidth = Math.min(geomWidth, normalizedMaxWidht);\n }\n if (!_.isNil(minColumnWidth)) {\n const normalizedMinWidht = minColumnWidth / xDimensionLegenth;\n geomWidth = Math.max(geomWidth, normalizedMinWidht);\n }\n geomWidth = defaultSize ? (defaultSize / xDimensionLegenth) : geomWidth;\n // 调整组间距\n normalizedIntervalPadding = (1 - (geomWidth * len + normalizedDodgePadding * (len - 1)) * groupNum) / (groupNum - 1);\n const offset =\n ((1 / 2 + idx) * geomWidth + idx * normalizedDodgePadding +\n (1 / 2) * normalizedIntervalPadding) * groupNum -\n normalizedIntervalPadding / 2;\n return offset;\n }\n\n private getIntervalAndDodgeOffset(len: number, idx: number): number {\n const {\n intervalPadding,\n dodgePadding,\n xDimensionLegenth,\n groupNum,\n } = this;\n const normalizedIntervalPadding = intervalPadding / xDimensionLegenth;\n const normalizedDodgePadding = dodgePadding / xDimensionLegenth;\n const geomWidth = ((1 - normalizedIntervalPadding * (groupNum - 1)) / groupNum - normalizedDodgePadding * (len - 1)) / len;\n const offset =\n ((1 / 2 + idx) * geomWidth + idx * normalizedDodgePadding +\n (1 / 2) * normalizedIntervalPadding) * groupNum -\n normalizedIntervalPadding / 2;\n return offset;\n }\n\n private getDistribution(dim: string) {\n const groupedDataArray = this.adjustDataArray;\n const cacheMap = this.cacheMap;\n let map = cacheMap[dim];\n\n if (!map) {\n map = {};\n _.each(groupedDataArray, (data, index) => {\n const values = _.valuesOfKey(data, dim) as number[];\n if (!values.length) {\n values.push(0);\n }\n _.each(values, (val: number) => {\n if (!map[val]) {\n map[val] = [];\n }\n map[val].push(index);\n });\n });\n cacheMap[dim] = map;\n }\n\n return map;\n }\n}\n","import * as _ from '@antv/util';\nimport { GAP } from '../constant';\nimport { Data, Range } from '../interface';\nimport Adjust from './adjust';\n\nfunction randomNumber(min: number, max: number): number {\n return (max - min) * Math.random() + min;\n}\n\nexport default class Jitter extends Adjust {\n public process(groupDataArray: Data[][]): Data[][] {\n const groupedDataArray = _.clone(groupDataArray);\n\n // 之前分组之后的数据,然后有合并回去(和分组前可以理解成是一样的)\n const mergeData = _.flatten(groupedDataArray) as Data[];\n\n // 返回值\n this.adjustData(groupedDataArray, mergeData);\n\n return groupedDataArray;\n }\n\n /**\n * 当前数据分组(index)中,按照维度 dim 进行 jitter 调整\n * @param dim\n * @param values\n * @param dataArray\n */\n protected adjustDim(dim: string, values: number[], dataArray: Data[]) {\n // 在每一个分组中,将数据再按照 dim 分组,用于散列\n const groupDataArray = this.groupData(dataArray, dim);\n return _.each(groupDataArray, (data: Data[], dimValue: string) => {\n return this.adjustGroup(data, dim, parseFloat(dimValue), values);\n });\n }\n\n // 随机出来的字段值\n private getAdjustOffset(range: Range): number {\n const { pre, next } = range;\n // 随机的范围\n const margin = (next - pre) * GAP;\n return randomNumber(pre + margin, next - margin);\n }\n\n // adjust group data\n private adjustGroup(group: Data[], dim: string, dimValue: number, values: number[]): Data[] {\n // 调整范围\n const range = this.getAdjustRange(dim, dimValue, values);\n\n _.each(group, (data: Data) => {\n data[dim] = this.getAdjustOffset(range); // 获取调整的位置\n });\n return group;\n }\n}\n","import * as _ from '@antv/util';\nimport { Data, StackCfg } from '../interface';\nimport Adjust from './adjust';\n\nconst Cache = _.Cache;\n\nexport default class Stack extends Adjust {\n constructor(cfg: StackCfg) {\n super(cfg);\n\n const { adjustNames = ['y'], height = NaN, size = 10, reverseOrder = false } = cfg;\n this.adjustNames = adjustNames;\n this.height = height;\n this.size = size;\n this.reverseOrder = reverseOrder;\n }\n\n /**\n * 方法入参是经过数据分组、数据数字化之后的二维数组\n * @param groupDataArray 分组之后的数据\n */\n public process(groupDataArray: Data[][]): Data[][] {\n const { yField, reverseOrder } = this;\n\n // 如果有指定 y 字段,那么按照 y 字段来 stack\n // 否则,按照高度均分\n const d = yField ? this.processStack(groupDataArray) : this.processOneDimStack(groupDataArray);\n\n return reverseOrder ? this.reverse(d) : d;\n }\n\n private reverse(groupedDataArray: Data[][]): Data[][] {\n return groupedDataArray.slice(0).reverse();\n }\n\n private processStack(groupDataArray: Data[][]): Data[][] {\n const { xField, yField, reverseOrder } = this;\n\n // 层叠顺序翻转\n const groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray;\n\n // 用来缓存,正数和负数的堆叠问题\n const positive = new Cache();\n const negative = new Cache();\n\n return groupedDataArray.map((dataArray) => {\n return dataArray.map((data) => {\n const x: number = _.get(data, xField, 0);\n let y: number = _.get(data, [yField]);\n\n const xKey = x.toString();\n\n // todo 是否应该取 _origin?因为 y 可能取到的值不正确,比如先 symmetric,再 stack!\n y = _.isArray(y) ? y[1] : y;\n\n if (!_.isNil(y)) {\n const cache = y >= 0 ? positive : negative;\n\n if (!cache.has(xKey)) {\n cache.set(xKey, 0);\n }\n const xValue = cache.get(xKey) as number;\n const newXValue = y + xValue;\n\n // 存起来\n cache.set(xKey, newXValue);\n\n return {\n ...data,\n // 叠加成数组,覆盖之前的数据\n [yField]: [xValue, newXValue],\n };\n }\n\n // 没有修改,则直接返回\n return data;\n });\n });\n }\n\n private processOneDimStack(groupDataArray: Data[][]): Data[][] {\n const { xField, height, reverseOrder } = this;\n const yField = 'y';\n\n // 如果层叠的顺序翻转\n const groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray;\n\n // 缓存累加数据\n const cache = new Cache();\n\n return groupedDataArray.map((dataArray): Data[] => {\n return dataArray.map(\n (data): Data => {\n const { size } = this;\n const xValue: string = data[xField];\n\n // todo 没有看到这个 stack 计算原理\n const stackHeight = (size * 2) / height;\n\n if (!cache.has(xValue)) {\n cache.set(xValue, stackHeight / 2); // 初始值大小\n }\n\n const stackValue = cache.get(xValue) as number;\n // 增加一层 stackHeight\n cache.set(xValue, stackValue + stackHeight);\n\n return {\n ...data,\n [yField]: stackValue,\n };\n }\n );\n });\n }\n}\n","import * as _ from '@antv/util';\nimport { Data } from '../interface';\nimport Adjust from './adjust';\n\nexport default class Symmetric extends Adjust {\n public process(groupDataArray: Data[][]): Data[][] {\n const mergeData = _.flatten(groupDataArray);\n\n const { xField, yField } = this;\n\n // 每个 x 值对应的 最大值\n const cache = this.getXValuesMaxMap(mergeData);\n\n // 所有数据的最大的值\n const max = Math.max(...Object.keys(cache).map((key) => cache[key]));\n\n return _.map(groupDataArray, (dataArray) => {\n return _.map(dataArray, (data) => {\n const yValue = data[yField];\n const xValue = data[xField];\n\n // 数组处理逻辑\n if (_.isArray(yValue)) {\n const off = (max - cache[xValue]) / 2;\n\n return {\n ...data,\n [yField]: _.map(yValue, (y: number) => off + y),\n };\n }\n\n // 非数组处理逻辑\n const offset = (max - yValue) / 2;\n return {\n ...data,\n [yField]: [offset, yValue + offset],\n };\n });\n });\n }\n\n // 获取每个 x 对应的最大的值\n private getXValuesMaxMap(mergeData: Data[]): { [key: string]: number } {\n const { xField, yField } = this;\n\n // 根据 xField 的值进行分组\n const groupDataArray = _.groupBy(mergeData, (data) => data[xField] as string);\n\n // 获取每个 xField 值中的最大值\n return _.mapValues(groupDataArray, (dataArray) => this.getDimMaxValue(dataArray, yField));\n }\n\n private getDimMaxValue(mergeData: Data[], dim: string): number {\n // 所有的 value 值\n const dimValues = _.map(mergeData, (data) => _.get(data, dim, []));\n // 将数组打平(dim value 有可能是数组,比如 stack 之后的)\n const flattenValues = _.flatten(dimValues);\n\n // 求出数组的最大值\n return Math.max(...flattenValues);\n }\n}\n","import { getAdjust, registerAdjust } from './factory';\n\nimport Adjust from './adjusts/adjust';\n\nimport Dodge from './adjusts/dodge';\nimport Jitter from './adjusts/jitter';\nimport Stack from './adjusts/stack';\nimport Symmetric from './adjusts/symmetric';\n\n// 注册内置的 adjust\nregisterAdjust('Dodge', Dodge);\nregisterAdjust('Jitter', Jitter);\nregisterAdjust('Stack', Stack);\nregisterAdjust('Symmetric', Symmetric);\n\n// 最终暴露给外部的方法\nexport { getAdjust, registerAdjust, Adjust };\n\nexport * from './interface';\n","import { each, identity, isArray, isNil, isString, mix } from '@antv/util';\nimport { AttributeCfg, CallbackType, Scale } from '../interface';\n\n// todo 这个到底目的是什么?\nconst toScaleString = (scale: Scale, value: any): any => {\n if (isString(value)) {\n return value;\n }\n return scale.invert(scale.scale(value));\n};\n\nexport type AttributeConstructor = new (cfg: any) => Attribute;\n\n/**\n * 所有视觉通道属性的基类\n * @class Base\n */\nexport default class Attribute {\n public type: string;\n public names: string[] = [];\n public scales: Scale[] = [];\n public linear: boolean = false;\n\n public values: any[] = [];\n\n constructor(cfg: AttributeCfg) {\n // 解析配置\n this._parseCfg(cfg);\n }\n public callback: CallbackType = () => [];\n\n /**\n * 映射的值组成的数组\n * @param params 对应 scale 顺序的值传入\n */\n public mapping(...params: any[]): any[] {\n const values = params.map((param, idx) => {\n return this._toOriginParam(param, this.scales[idx]);\n });\n\n return this.callback.apply(this, values);\n }\n\n /**\n * 如果进行线性映射,返回对应的映射值\n * @param percent\n */\n public getLinearValue(percent: number): number | string {\n // 分段数量\n const steps = this.values.length - 1;\n\n const step = Math.floor(steps * percent);\n const leftPercent = steps * percent - step;\n\n // todo 不懂这个逻辑\n const start = this.values[step];\n const end = step === steps ? start : this.values[step + 1];\n\n // 线性方程\n return start + (end - start) * leftPercent;\n }\n\n /**\n * 根据度量获取属性名\n */\n public getNames() {\n const scales = this.scales;\n const names = this.names;\n\n const length = Math.min(scales.length, names.length);\n const rst = [];\n for (let i = 0; i < length; i += 1) {\n rst.push(names[i]);\n }\n return rst;\n }\n\n /**\n * 获取所有的维度名\n */\n public getFields() {\n return this.scales.map((scale) => scale.field);\n }\n\n /**\n * 根据名称获取度量\n * @param name\n */\n public getScale(name: string) {\n return this.scales[this.names.indexOf(name)];\n }\n\n /**\n * 默认的回调函数(用户没有自定义 callback,或者用户自定义 callback 返回空的时候,使用 values 映射)\n * @param params\n */\n private defaultCallback(...params: any[]): any[] {\n // 没有 params 的情况,是指没有指定 fields,直接返回配置的 values 常量\n if (params.length === 0) {\n return this.values;\n }\n\n return params.map((param, idx) => {\n const scale = this.scales[idx];\n\n return scale.type === 'identity' ? scale.values[0] : this._getAttributeValue(scale, param);\n });\n }\n\n // 解析配置\n private _parseCfg(cfg: AttributeCfg) {\n const { type = 'base', names = [], scales = [], values = [], callback } = cfg;\n\n this.type = type;\n\n this.scales = scales;\n this.values = values;\n this.names = names;\n\n // 构造 callback 方法\n this.callback = (...params: any[]): any[] => {\n /**\n * 当用户设置的 callback 返回 null 时, 应该返回默认 callback 中的值\n */\n if (callback) {\n // 使用用户返回的值处理\n const ret = callback(...params);\n if (!isNil(ret)) {\n return [ret];\n }\n }\n\n // 没有 callback 或者用户 callback 返回值为空,则使用默认的逻辑处理\n return this.defaultCallback.apply(this, params);\n };\n }\n\n // 获取属性值,将值映射到视觉通道\n private _getAttributeValue(scale: Scale, value: any) {\n // 如果是非线性的字段,直接从 values 中取值即可\n if (scale.isCategory && !this.linear) {\n // 离散 scale 变换成索引\n const idx = scale.translate(value) as number;\n return this.values[idx % this.values.length];\n }\n\n // 线性则使用线性值\n const percent = scale.scale(value);\n return this.getLinearValue(percent);\n }\n\n /**\n * 通过 scale 拿到数据对应的原始的参数\n * @param param\n * @param scale\n * @private\n */\n private _toOriginParam(param: any, scale: Scale) {\n // 是线性,直接返回\n // 非线性,使用 scale 变换\n return !scale.isLinear\n ? isArray(param)\n ? param.map((p: any) => toScaleString(scale, p))\n : toScaleString(scale, param)\n : param;\n }\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","import { map, memoize, isString, each } from '@antv/util';\n\nconst RGB_REG = /rgba?\\(([\\s.,0-9]+)\\)/;\nconst regexLG = /^l\\s*\\(\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nconst regexRG = /^r\\s*\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nconst regexColorStop = /[\\d.]+:(#[^\\s]+|[^\\)]+\\))/gi;\n\nconst isGradientColor = (val) => /^[r,R,L,l]{1}[\\s]*\\(/.test(val);\n\n// 创建辅助 tag 取颜色\nconst createTmp = (): HTMLElement => {\n const i = document.createElement('i');\n i.title = 'Web Colour Picker';\n i.style.display = 'none';\n document.body.appendChild(i);\n return i;\n};\n\n// 获取颜色之间的插值\nconst getValue = (start: number[], end: number[], percent: number, index: number): number => {\n return start[index] + (end[index] - start[index]) * percent;\n};\n\n// 数组转换成颜色\nfunction arr2rgb(arr: number[]): string {\n return `#${toHex(arr[0])}${toHex(arr[1])}${toHex(arr[2])}`;\n}\n\n// rgb 颜色转换成数组\nconst rgb2arr = (str: string): number[] => {\n return [\n parseInt(str.substr(1, 2), 16),\n parseInt(str.substr(3, 2), 16),\n parseInt(str.substr(5, 2), 16),\n ];\n};\n\n// 将数值从 0-255 转换成16进制字符串\nconst toHex = (value: number): string => {\n const x16Value = Math.round(value).toString(16);\n\n return x16Value.length === 1 ? `0${x16Value}` : x16Value;\n};\n\n// 计算颜色\nconst calColor = (points: number[][], percent: number) => {\n const fixedPercent = isNaN(Number(percent)) || percent < 0 ? 0 :\n percent > 1 ? 1 :\n Number(percent);\n\n const steps = points.length - 1;\n\n const step = Math.floor(steps * fixedPercent);\n\n const left = steps * fixedPercent - step;\n\n const start = points[step];\n\n const end = step === steps ? start : points[step + 1];\n\n return arr2rgb([\n getValue(start, end, left, 0),\n getValue(start, end, left, 1),\n getValue(start, end, left, 2),\n ]);\n};\n\n// 用于给 toRGB 的缓存(使用 memoize 方法替换)\n// const colorCache = {};\nlet iEl: HTMLElement;\n\n/**\n * 将颜色转换到 rgb 的格式\n * @param {color} color 颜色\n * @return 将颜色转换到 '#ffffff' 的格式\n */\nconst toRGB = (color: string): string => {\n // 如果已经是 rgb的格式\n if (color[0] === '#' && color.length === 7) {\n return color;\n }\n\n if (!iEl) {\n // 防止防止在页头报错\n iEl = createTmp();\n }\n\n iEl.style.color = color;\n\n let rst = document.defaultView.getComputedStyle(iEl, '').getPropertyValue('color');\n\n const matches = RGB_REG.exec(rst) as string[] ;\n const cArray: number[] = matches[1].split(/\\s*,\\s*/).map((s) => Number(s));\n\n rst = arr2rgb(cArray);\n\n return rst;\n};\n\n/**\n * 获取渐变函数\n * @param colors 多个颜色\n * @return 颜色值\n */\nconst gradient = (colors: string | string[]) => {\n const colorArray = isString(colors) ? (colors as string).split('-') : colors;\n\n const points = map(colorArray, (color) => {\n return rgb2arr(color.indexOf('#') === -1 ? toRGB(color) : color);\n });\n\n // 返回一个函数\n return (percent: number): string => {\n return calColor(points, percent);\n };\n};\n\nconst toCSSGradient = (gradientColor) => {\n if (isGradientColor(gradientColor)) {\n let cssColor;\n let steps;\n if (gradientColor[0] === 'l') {\n // 线性渐变\n const arr = regexLG.exec(gradientColor);\n const angle = +arr[1] + 90; // css 和 g 的渐变起始角度不同\n steps = arr[2];\n\n cssColor = `linear-gradient(${angle}deg, `;\n } else if (gradientColor[0] === 'r') {\n // 径向渐变\n cssColor = 'radial-gradient(';\n const arr = regexRG.exec(gradientColor);\n steps = arr[4];\n }\n\n const colorStops: string[] = steps.match(regexColorStop);\n each(colorStops, (item, index) => {\n const itemArr = item.split(':');\n cssColor += `${itemArr[1]} ${itemArr[0] * 100}%`;\n if (index !== (colorStops.length - 1)) {\n cssColor += ', ';\n }\n });\n\n cssColor += ')';\n\n return cssColor;\n }\n\n return gradientColor;\n};\n\nexport default {\n rgb2arr,\n gradient,\n toRGB: memoize(toRGB),\n toCSSGradient,\n};\n","import colorUtil from '@antv/color-util';\nimport { isString } from '@antv/util';\nimport { AttributeCfg } from '../interface';\nimport Attribute from './base';\n\nexport default class Color extends Attribute {\n public gradient: (percent: number) => string;\n\n constructor(cfg: AttributeCfg) {\n super(cfg);\n this.type = 'color';\n this.names = ['color'];\n\n if (isString(this.values)) {\n this.linear = true;\n }\n\n this.gradient = colorUtil.gradient(this.values);\n }\n\n /**\n * @override\n */\n public getLinearValue(percent: number): string {\n return this.gradient(percent);\n }\n}\n","import { AttributeCfg } from '../interface';\nimport Attribute from './base';\n\nexport default class Opacity extends Attribute {\n constructor(cfg: AttributeCfg) {\n super(cfg);\n this.type = 'opacity';\n this.names = ['opacity'];\n }\n}\n","import { isArray, isNil } from '@antv/util';\nimport { AttributeCfg } from '../interface';\nimport Attribute from './base';\n\nexport type Value = number | string;\nexport type MappingValue = Value[] | Value;\n\nexport default class Position extends Attribute {\n constructor(cfg: AttributeCfg) {\n super(cfg);\n this.names = ['x', 'y'];\n this.type = 'position';\n }\n\n public mapping(x: MappingValue, y: MappingValue) {\n const [scaleX, scaleY] = this.scales;\n\n if (isNil(x) || isNil(y)) {\n return [];\n }\n\n return [\n isArray(x) ? x.map((xi) => scaleX.scale(xi)) : scaleX.scale(x),\n isArray(y) ? y.map((yi) => scaleY.scale(yi)) : scaleY.scale(y),\n ];\n }\n}\n","import { AttributeCfg } from '../interface';\nimport Attribute from './base';\n\nexport default class Shape extends Attribute {\n constructor(cfg: AttributeCfg) {\n super(cfg);\n this.type = 'shape';\n this.names = ['shape'];\n }\n\n /**\n * @override\n */\n public getLinearValue(percent: number): string {\n const idx = Math.round((this.values.length - 1) * percent);\n return this.values[idx];\n }\n}\n","import { AttributeCfg } from '../interface';\nimport Attribute from './base';\n\nexport default class Size extends Attribute {\n constructor(cfg: AttributeCfg) {\n super(cfg);\n this.type = 'size';\n this.names = ['size'];\n }\n}\n","import { TickMethod } from '../types';\ninterface MethodMap {\n [key: string]: TickMethod;\n}\nconst methodCache: MethodMap = {};\n\n/**\n * 获取计算 ticks 的方法\n * @param key 键值\n * @returns 计算 ticks 的方法\n */\nexport function getTickMethod(key: string): TickMethod {\n return methodCache[key];\n}\n\n/**\n * 注册计算 ticks 的方法\n * @param key 键值\n * @param method 方法\n */\nexport function registerTickMethod(key: string, method: TickMethod) {\n methodCache[key] = method;\n}\n","import { assign, isEmpty, isFunction, isNil, isNumber, isObject, isString, map } from '@antv/util';\nimport { getTickMethod } from './tick-method/register';\nimport { ScaleConfig, Tick } from './types';\nexport default abstract class Scale {\n /**\n * 度量的类型\n */\n public type: string = 'base';\n /**\n * 是否分类类型的度量\n */\n public isCategory?: boolean = false;\n /**\n * 是否线性度量,有linear, time 度量\n */\n public isLinear?: boolean = false;\n /**\n * 是否连续类型的度量,linear,time,log, pow, quantile, quantize 都支持\n */\n public isContinuous?: boolean = false;\n /**\n * 是否是常量的度量,传入和传出一致\n */\n public isIdentity: boolean = false;\n\n public field?: ScaleConfig['field'];\n public alias?: ScaleConfig['alias'];\n public values: ScaleConfig['values'] = [];\n public min?: ScaleConfig['min'];\n public max?: ScaleConfig['max'];\n public minLimit?: ScaleConfig['minLimit'];\n public maxLimit?: ScaleConfig['maxLimit'];\n public range: ScaleConfig['range'] = [0, 1];\n public ticks: ScaleConfig['ticks'] = [];\n public tickCount: ScaleConfig['tickCount'];\n public tickInterval: ScaleConfig['tickInterval'];\n public formatter?: ScaleConfig['formatter'];\n public tickMethod?: ScaleConfig['tickMethod'];\n protected __cfg__: ScaleConfig; // 缓存的旧配置, 用于 clone\n\n constructor(cfg: ScaleConfig) {\n this.__cfg__ = cfg;\n this.initCfg();\n this.init();\n }\n\n // 对于原始值的必要转换,如分类、时间字段需转换成数值,用transform/map命名可能更好\n public translate(v: any) {\n return v;\n }\n\n /** 将定义域转换为值域 */\n public abstract scale(value: any): number;\n\n /** 将值域转换为定义域 */\n public abstract invert(scaled: number): any;\n\n /** 重新初始化 */\n public change(cfg: ScaleConfig) {\n // 覆盖配置项,而不替代\n assign(this.__cfg__, cfg);\n this.init();\n }\n\n public clone(): Scale {\n return this.constructor(this.__cfg__);\n }\n\n /** 获取坐标轴需要的ticks */\n public getTicks(): Tick[] {\n return map(this.ticks, (tick: any, idx: number) => {\n if (isObject(tick)) {\n // 仅当符合Tick类型时才有意义\n return tick as Tick;\n }\n return {\n text: this.getText(tick, idx),\n tickValue: tick, // 原始value\n value: this.scale(tick), // scaled\n };\n });\n }\n\n /** 获取Tick的格式化结果 */\n public getText(value: any, key?: number): string {\n const formatter = this.formatter;\n const res = formatter ? formatter(value, key) : value;\n if (isNil(res) || !isFunction(res.toString)) {\n return '';\n }\n return res.toString();\n }\n\n // 获取配置项中的值,当前 scale 上的值可能会被修改\n protected getConfig(key) {\n return this.__cfg__[key];\n }\n\n // scale初始化\n protected init(): void {\n assign(this, this.__cfg__);\n this.setDomain();\n if (isEmpty(this.getConfig('ticks'))) {\n this.ticks = this.calculateTicks();\n }\n }\n\n // 子类上覆盖某些属性,不能直接在类上声明,否则会被覆盖\n protected initCfg() {}\n\n protected setDomain(): void {}\n\n protected calculateTicks(): any[] {\n const tickMethod = this.tickMethod;\n let ticks = [];\n if (isString(tickMethod)) {\n const method = getTickMethod(tickMethod);\n if (!method) {\n throw new Error('There is no method to to calculate ticks!');\n }\n ticks = method(this);\n } else if (isFunction(tickMethod)) {\n ticks = tickMethod(this);\n }\n return ticks;\n }\n\n // range 的最小值\n protected rangeMin() {\n return this.range[0];\n }\n\n // range 的最大值\n protected rangeMax() {\n return this.range[1];\n }\n\n /** 定义域转 0~1 */\n protected calcPercent(value: any, min: number, max: number): number {\n if (isNumber(value)) {\n return (value - min) / (max - min);\n }\n return NaN;\n }\n\n /** 0~1转定义域 */\n protected calcValue(percent: number, min: number, max: number): number {\n return min + percent * (max - min);\n }\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n","import { indexOf, isNil, isNumber } from '@antv/util';\nimport Base from '../base';\n\n/**\n * 分类度量\n * @class\n */\nclass Category extends Base {\n public readonly type: string = 'cat';\n public readonly isCategory: boolean = true;\n\n // 用于缓存 translate 函数\n private translateIndexMap;\n\n private buildIndexMap() {\n if (!this.translateIndexMap) {\n this.translateIndexMap = new Map();\n // 重新构建缓存\n for (let i = 0; i < this.values.length; i ++) {\n this.translateIndexMap.set(this.values[i], i);\n }\n }\n }\n\n public translate(value: any): number {\n // 按需构建 map\n this.buildIndexMap();\n // 找得到\n let idx = this.translateIndexMap.get(value);\n \n if (idx === undefined) {\n idx = isNumber(value) ? value : NaN;\n }\n return idx;\n }\n\n public scale(value: any): number {\n const order = this.translate(value);\n // 分类数据允许 0.5 范围内调整\n // if (order < this.min - 0.5 || order > this.max + 0.5) {\n // return NaN;\n // }\n const percent = this.calcPercent(order, this.min, this.max);\n return this.calcValue(percent, this.rangeMin(), this.rangeMax());\n }\n\n public invert(scaledValue: number) {\n const domainRange = this.max - this.min;\n const percent = this.calcPercent(scaledValue, this.rangeMin(), this.rangeMax());\n const idx = Math.round(domainRange * percent) + this.min;\n if (idx < this.min || idx > this.max) {\n return NaN;\n }\n return this.values[idx];\n }\n\n public getText(value: any, ...args: any[]): string {\n let v = value;\n // value为index\n if (isNumber(value) && !this.values.includes(value)) {\n v = this.values[v];\n }\n return super.getText(v, ...args);\n }\n // 复写属性\n protected initCfg() {\n this.tickMethod = 'cat';\n }\n // 设置 min, max\n protected setDomain() {\n // 用户有可能设置 min\n if (isNil(this.getConfig('min'))) {\n this.min = 0;\n }\n if (isNil(this.getConfig('max'))) {\n const size = this.values.length;\n this.max = size > 1 ? size - 1 : size;\n }\n\n // scale.init 的时候清除缓存\n if (this.translateIndexMap) {\n this.translateIndexMap = undefined;\n }\n }\n}\n\nexport default Category;\n","const token = /d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\nconst twoDigitsOptional = \"\\\\d\\\\d?\";\nconst twoDigits = \"\\\\d\\\\d\";\nconst threeDigits = \"\\\\d{3}\";\nconst fourDigits = \"\\\\d{4}\";\nconst word = \"[^\\\\s]+\";\nconst literal = /\\[([^]*?)\\]/gm;\n\ntype DateInfo = {\n year: number;\n month: number;\n day: number;\n hour: number;\n minute: number;\n second: number;\n millisecond: number;\n isPm: number | null;\n timezoneOffset: number | null;\n};\n\nexport type I18nSettings = {\n amPm: [string, string];\n dayNames: Days;\n dayNamesShort: Days;\n monthNames: Months;\n monthNamesShort: Months;\n DoFn(dayOfMonth: number): string;\n};\n\nexport type I18nSettingsOptional = Partial;\n\nexport type Days = [string, string, string, string, string, string, string];\nexport type Months = [\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string,\n string\n];\n\nfunction shorten(arr: T, sLen: number): string[] {\n const newArr: string[] = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n newArr.push(arr[i].substr(0, sLen));\n }\n return newArr;\n}\n\nconst monthUpdate = (\n arrName: \"monthNames\" | \"monthNamesShort\" | \"dayNames\" | \"dayNamesShort\"\n) => (v: string, i18n: I18nSettings): number | null => {\n const lowerCaseArr = i18n[arrName].map(v => v.toLowerCase());\n const index = lowerCaseArr.indexOf(v.toLowerCase());\n if (index > -1) {\n return index;\n }\n return null;\n};\n\nexport function assign
(a: A): A;\nexport function assign(a: A, b: B): A & B;\nexport function assign(a: A, b: B, c: C): A & B & C;\nexport function assign(a: A, b: B, c: C, d: D): A & B & C & D;\nexport function assign(origObj: any, ...args: any[]): any {\n for (const obj of args) {\n for (const key in obj) {\n // @ts-ignore ex\n origObj[key] = obj[key];\n }\n }\n return origObj;\n}\n\nconst dayNames: Days = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\nconst monthNames: Months = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nconst monthNamesShort: Months = shorten(monthNames, 3) as Months;\nconst dayNamesShort: Days = shorten(dayNames, 3) as Days;\n\nconst defaultI18n: I18nSettings = {\n dayNamesShort,\n dayNames,\n monthNamesShort,\n monthNames,\n amPm: [\"am\", \"pm\"],\n DoFn(dayOfMonth: number) {\n return (\n dayOfMonth +\n [\"th\", \"st\", \"nd\", \"rd\"][\n dayOfMonth % 10 > 3\n ? 0\n : ((dayOfMonth - (dayOfMonth % 10) !== 10 ? 1 : 0) * dayOfMonth) % 10\n ]\n );\n }\n};\nlet globalI18n = assign({}, defaultI18n);\nconst setGlobalDateI18n = (i18n: I18nSettingsOptional): I18nSettings =>\n (globalI18n = assign(globalI18n, i18n));\n\nconst regexEscape = (str: string): string =>\n str.replace(/[|\\\\{()[^$+*?.-]/g, \"\\\\$&\");\n\nconst pad = (val: string | number, len = 2): string => {\n val = String(val);\n while (val.length < len) {\n val = \"0\" + val;\n }\n return val;\n};\n\nconst formatFlags: Record<\n string,\n (dateObj: Date, i18n: I18nSettings) => string\n> = {\n D: (dateObj: Date): string => String(dateObj.getDate()),\n DD: (dateObj: Date): string => pad(dateObj.getDate()),\n Do: (dateObj: Date, i18n: I18nSettings): string =>\n i18n.DoFn(dateObj.getDate()),\n d: (dateObj: Date): string => String(dateObj.getDay()),\n dd: (dateObj: Date): string => pad(dateObj.getDay()),\n ddd: (dateObj: Date, i18n: I18nSettings): string =>\n i18n.dayNamesShort[dateObj.getDay()],\n dddd: (dateObj: Date, i18n: I18nSettings): string =>\n i18n.dayNames[dateObj.getDay()],\n M: (dateObj: Date): string => String(dateObj.getMonth() + 1),\n MM: (dateObj: Date): string => pad(dateObj.getMonth() + 1),\n MMM: (dateObj: Date, i18n: I18nSettings): string =>\n i18n.monthNamesShort[dateObj.getMonth()],\n MMMM: (dateObj: Date, i18n: I18nSettings): string =>\n i18n.monthNames[dateObj.getMonth()],\n YY: (dateObj: Date): string =>\n pad(String(dateObj.getFullYear()), 4).substr(2),\n YYYY: (dateObj: Date): string => pad(dateObj.getFullYear(), 4),\n h: (dateObj: Date): string => String(dateObj.getHours() % 12 || 12),\n hh: (dateObj: Date): string => pad(dateObj.getHours() % 12 || 12),\n H: (dateObj: Date): string => String(dateObj.getHours()),\n HH: (dateObj: Date): string => pad(dateObj.getHours()),\n m: (dateObj: Date): string => String(dateObj.getMinutes()),\n mm: (dateObj: Date): string => pad(dateObj.getMinutes()),\n s: (dateObj: Date): string => String(dateObj.getSeconds()),\n ss: (dateObj: Date): string => pad(dateObj.getSeconds()),\n S: (dateObj: Date): string =>\n String(Math.round(dateObj.getMilliseconds() / 100)),\n SS: (dateObj: Date): string =>\n pad(Math.round(dateObj.getMilliseconds() / 10), 2),\n SSS: (dateObj: Date): string => pad(dateObj.getMilliseconds(), 3),\n a: (dateObj: Date, i18n: I18nSettings): string =>\n dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1],\n A: (dateObj: Date, i18n: I18nSettings): string =>\n dateObj.getHours() < 12\n ? i18n.amPm[0].toUpperCase()\n : i18n.amPm[1].toUpperCase(),\n ZZ(dateObj: Date): string {\n const offset = dateObj.getTimezoneOffset();\n return (\n (offset > 0 ? \"-\" : \"+\") +\n pad(Math.floor(Math.abs(offset) / 60) * 100 + (Math.abs(offset) % 60), 4)\n );\n },\n Z(dateObj: Date): string {\n const offset = dateObj.getTimezoneOffset();\n return (\n (offset > 0 ? \"-\" : \"+\") +\n pad(Math.floor(Math.abs(offset) / 60), 2) +\n \":\" +\n pad(Math.abs(offset) % 60, 2)\n );\n }\n};\n\ntype ParseInfo = [\n keyof DateInfo,\n string,\n ((v: string, i18n: I18nSettings) => number | null)?,\n string?\n];\nconst monthParse = (v: string): number => +v - 1;\nconst emptyDigits: ParseInfo = [null, twoDigitsOptional];\nconst emptyWord: ParseInfo = [null, word];\nconst amPm: ParseInfo = [\n \"isPm\",\n word,\n (v: string, i18n: I18nSettings): number | null => {\n const val = v.toLowerCase();\n if (val === i18n.amPm[0]) {\n return 0;\n } else if (val === i18n.amPm[1]) {\n return 1;\n }\n return null;\n }\n];\nconst timezoneOffset: ParseInfo = [\n \"timezoneOffset\",\n \"[^\\\\s]*?[\\\\+\\\\-]\\\\d\\\\d:?\\\\d\\\\d|[^\\\\s]*?Z?\",\n (v: string): number | null => {\n const parts = (v + \"\").match(/([+-]|\\d\\d)/gi);\n\n if (parts) {\n const minutes = +parts[1] * 60 + parseInt(parts[2], 10);\n return parts[0] === \"+\" ? minutes : -minutes;\n }\n\n return 0;\n }\n];\nconst parseFlags: Record = {\n D: [\"day\", twoDigitsOptional],\n DD: [\"day\", twoDigits],\n Do: [\"day\", twoDigitsOptional + word, (v: string): number => parseInt(v, 10)],\n M: [\"month\", twoDigitsOptional, monthParse],\n MM: [\"month\", twoDigits, monthParse],\n YY: [\n \"year\",\n twoDigits,\n (v: string): number => {\n const now = new Date();\n const cent = +(\"\" + now.getFullYear()).substr(0, 2);\n return +(\"\" + (+v > 68 ? cent - 1 : cent) + v);\n }\n ],\n h: [\"hour\", twoDigitsOptional, undefined, \"isPm\"],\n hh: [\"hour\", twoDigits, undefined, \"isPm\"],\n H: [\"hour\", twoDigitsOptional],\n HH: [\"hour\", twoDigits],\n m: [\"minute\", twoDigitsOptional],\n mm: [\"minute\", twoDigits],\n s: [\"second\", twoDigitsOptional],\n ss: [\"second\", twoDigits],\n YYYY: [\"year\", fourDigits],\n S: [\"millisecond\", \"\\\\d\", (v: string): number => +v * 100],\n SS: [\"millisecond\", twoDigits, (v: string): number => +v * 10],\n SSS: [\"millisecond\", threeDigits],\n d: emptyDigits,\n dd: emptyDigits,\n ddd: emptyWord,\n dddd: emptyWord,\n MMM: [\"month\", word, monthUpdate(\"monthNamesShort\")],\n MMMM: [\"month\", word, monthUpdate(\"monthNames\")],\n a: amPm,\n A: amPm,\n ZZ: timezoneOffset,\n Z: timezoneOffset\n};\n\n// Some common format strings\nconst globalMasks: { [key: string]: string } = {\n default: \"ddd MMM DD YYYY HH:mm:ss\",\n shortDate: \"M/D/YY\",\n mediumDate: \"MMM D, YYYY\",\n longDate: \"MMMM D, YYYY\",\n fullDate: \"dddd, MMMM D, YYYY\",\n isoDate: \"YYYY-MM-DD\",\n isoDateTime: \"YYYY-MM-DDTHH:mm:ssZ\",\n shortTime: \"HH:mm\",\n mediumTime: \"HH:mm:ss\",\n longTime: \"HH:mm:ss.SSS\"\n};\nconst setGlobalDateMasks = (masks: {\n [key: string]: string;\n}): { [key: string]: string } => assign(globalMasks, masks);\n\n/***\n * Format a date\n * @method format\n * @param {Date|number} dateObj\n * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'\n * @returns {string} Formatted date string\n */\nconst format = (\n dateObj: Date,\n mask: string = globalMasks[\"default\"],\n i18n: I18nSettingsOptional = {}\n): string => {\n if (typeof dateObj === \"number\") {\n dateObj = new Date(dateObj);\n }\n\n if (\n Object.prototype.toString.call(dateObj) !== \"[object Date]\" ||\n isNaN(dateObj.getTime())\n ) {\n throw new Error(\"Invalid Date pass to format\");\n }\n\n mask = globalMasks[mask] || mask;\n\n const literals: string[] = [];\n\n // Make literals inactive by replacing them with @@@\n mask = mask.replace(literal, function($0, $1) {\n literals.push($1);\n return \"@@@\";\n });\n\n const combinedI18nSettings: I18nSettings = assign(\n assign({}, globalI18n),\n i18n\n );\n // Apply formatting rules\n mask = mask.replace(token, $0 =>\n formatFlags[$0](dateObj, combinedI18nSettings)\n );\n // Inline literal values back into the formatted value\n return mask.replace(/@@@/g, () => literals.shift());\n};\n\n/**\n * Parse a date string into a Javascript Date object /\n * @method parse\n * @param {string} dateStr Date string\n * @param {string} format Date parse format\n * @param {i18n} I18nSettingsOptional Full or subset of I18N settings\n * @returns {Date|null} Returns Date object. Returns null what date string is invalid or doesn't match format\n */\nfunction parse(\n dateStr: string,\n format: string,\n i18n: I18nSettingsOptional = {}\n): Date | null {\n if (typeof format !== \"string\") {\n throw new Error(\"Invalid format in fecha parse\");\n }\n\n // Check to see if the format is actually a mask\n format = globalMasks[format] || format;\n\n // Avoid regular expression denial of service, fail early for really long strings\n // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS\n if (dateStr.length > 1000) {\n return null;\n }\n\n // Default to the beginning of the year.\n const today = new Date();\n const dateInfo: DateInfo = {\n year: today.getFullYear(),\n month: 0,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n isPm: null,\n timezoneOffset: null\n };\n const parseInfo: ParseInfo[] = [];\n const literals: string[] = [];\n\n // Replace all the literals with @@@. Hopefully a string that won't exist in the format\n let newFormat = format.replace(literal, ($0, $1) => {\n literals.push(regexEscape($1));\n return \"@@@\";\n });\n const specifiedFields: { [field: string]: boolean } = {};\n const requiredFields: { [field: string]: boolean } = {};\n\n // Change every token that we find into the correct regex\n newFormat = regexEscape(newFormat).replace(token, $0 => {\n const info = parseFlags[$0];\n const [field, regex, , requiredField] = info;\n\n // Check if the person has specified the same field twice. This will lead to confusing results.\n if (specifiedFields[field]) {\n throw new Error(`Invalid format. ${field} specified twice in format`);\n }\n\n specifiedFields[field] = true;\n\n // Check if there are any required fields. For instance, 12 hour time requires AM/PM specified\n if (requiredField) {\n requiredFields[requiredField] = true;\n }\n\n parseInfo.push(info);\n return \"(\" + regex + \")\";\n });\n\n // Check all the required fields are present\n Object.keys(requiredFields).forEach(field => {\n if (!specifiedFields[field]) {\n throw new Error(\n `Invalid format. ${field} is required in specified format`\n );\n }\n });\n\n // Add back all the literals after\n newFormat = newFormat.replace(/@@@/g, () => literals.shift());\n\n // Check if the date string matches the format. If it doesn't return null\n const matches = dateStr.match(new RegExp(newFormat, \"i\"));\n if (!matches) {\n return null;\n }\n\n const combinedI18nSettings: I18nSettings = assign(\n assign({}, globalI18n),\n i18n\n );\n\n // For each match, call the parser function for that date part\n for (let i = 1; i < matches.length; i++) {\n const [field, , parser] = parseInfo[i - 1];\n const value = parser\n ? parser(matches[i], combinedI18nSettings)\n : +matches[i];\n\n // If the parser can't make sense of the value, return null\n if (value == null) {\n return null;\n }\n\n dateInfo[field] = value;\n }\n\n if (dateInfo.isPm === 1 && dateInfo.hour != null && +dateInfo.hour !== 12) {\n dateInfo.hour = +dateInfo.hour + 12;\n } else if (dateInfo.isPm === 0 && +dateInfo.hour === 12) {\n dateInfo.hour = 0;\n }\n\n let dateTZ: Date;\n if (dateInfo.timezoneOffset == null) {\n dateTZ = new Date(\n dateInfo.year,\n dateInfo.month,\n dateInfo.day,\n dateInfo.hour,\n dateInfo.minute,\n dateInfo.second,\n dateInfo.millisecond\n );\n const validateFields: [\n \"month\" | \"day\" | \"hour\" | \"minute\" | \"second\",\n \"getMonth\" | \"getDate\" | \"getHours\" | \"getMinutes\" | \"getSeconds\"\n ][] = [\n [\"month\", \"getMonth\"],\n [\"day\", \"getDate\"],\n [\"hour\", \"getHours\"],\n [\"minute\", \"getMinutes\"],\n [\"second\", \"getSeconds\"]\n ];\n for (let i = 0, len = validateFields.length; i < len; i++) {\n // Check to make sure the date field is within the allowed range. Javascript dates allows values\n // outside the allowed range. If the values don't match the value was invalid\n if (\n specifiedFields[validateFields[i][0]] &&\n dateInfo[validateFields[i][0]] !== dateTZ[validateFields[i][1]]()\n ) {\n return null;\n }\n }\n } else {\n dateTZ = new Date(\n Date.UTC(\n dateInfo.year,\n dateInfo.month,\n dateInfo.day,\n dateInfo.hour,\n dateInfo.minute - dateInfo.timezoneOffset,\n dateInfo.second,\n dateInfo.millisecond\n )\n );\n\n // We can't validate dates in another timezone unfortunately. Do a basic check instead\n if (\n dateInfo.month > 11 ||\n dateInfo.month < 0 ||\n dateInfo.day > 31 ||\n dateInfo.day < 1 ||\n dateInfo.hour > 23 ||\n dateInfo.hour < 0 ||\n dateInfo.minute > 59 ||\n dateInfo.minute < 0 ||\n dateInfo.second > 59 ||\n dateInfo.second < 0\n ) {\n return null;\n }\n }\n\n // Don't allow invalid dates\n\n return dateTZ;\n}\nexport default {\n format,\n parse,\n defaultI18n,\n setGlobalDateI18n,\n setGlobalDateMasks\n};\nexport { format, parse, defaultI18n, setGlobalDateI18n, setGlobalDateMasks };\n","import { isDate, isString, last } from '@antv/util';\nimport fecha from 'fecha';\nimport * as fecha1 from 'fecha';\n\nimport bisector from './bisector';\nconst FORMAT_METHOD = 'format';\n\nexport function timeFormat(time, mask) { // 由于 fecha 包的 typescript 定义有问题,所以暂时兼容一下\n const method = fecha1[FORMAT_METHOD] || fecha[FORMAT_METHOD];\n return method(time, mask);\n}\n/**\n * 转换成时间戳\n * @param value 时间值\n */\nexport function toTimeStamp(value: any): number {\n if (isString(value)) {\n if (value.indexOf('T') > 0) {\n value = new Date(value).getTime();\n } else {\n // new Date('2010/01/10') 和 new Date('2010-01-10') 的差别在于:\n // 如果仅有年月日时,前者是带有时区的: Fri Jan 10 2020 02:40:13 GMT+0800 (中国标准时间)\n // 后者会格式化成 Sun Jan 10 2010 08:00:00 GMT+0800 (中国标准时间)\n value = new Date(value.replace(/-/gi, '/')).getTime();\n }\n }\n if (isDate(value)) {\n value = value.getTime();\n }\n return value;\n}\n\nconst SECOND = 1000;\nconst MINUTE = 60 * SECOND;\nconst HOUR = 60 * MINUTE;\nconst DAY = 24 * HOUR;\nconst MONTH = DAY * 31;\nconst YEAR = DAY * 365;\n\nexport { SECOND, MINUTE, HOUR, DAY, MONTH, YEAR };\ntype Interval = [string, number]; // [defaultMomentFormat, interval]\nconst intervals: Interval[] = [\n ['HH:mm:ss', SECOND],\n ['HH:mm:ss', SECOND * 10],\n ['HH:mm:ss', SECOND * 30],\n ['HH:mm', MINUTE],\n ['HH:mm', MINUTE * 10],\n ['HH:mm', MINUTE * 30],\n ['HH', HOUR],\n ['HH', HOUR * 6],\n ['HH', HOUR * 12],\n ['YYYY-MM-DD', DAY],\n ['YYYY-MM-DD', DAY * 4],\n ['YYYY-WW', DAY * 7],\n ['YYYY-MM', MONTH],\n ['YYYY-MM', MONTH * 4],\n ['YYYY-MM', MONTH * 6],\n ['YYYY', DAY * 380], // 借鉴echarts,保证每个周期累加时不会碰到恰巧不够的问题\n];\n\nexport function getTickInterval(min: number, max: number, tickCount: number): Interval {\n const target = (max - min) / tickCount;\n const idx = bisector((o: Interval) => o[1])(intervals, target) - 1;\n let interval: Interval = intervals[idx];\n if (idx < 0) {\n interval = intervals[0];\n } else if (idx >= intervals.length) {\n interval = last(intervals);\n }\n return interval;\n}\n","import { isNil } from '@antv/util';\n\ntype GetterFunc = (o: T) => number;\n\n/**\n * 二分右侧查找\n * https://github.com/d3/d3-array/blob/master/src/bisector.js\n */\nexport default function(getter: GetterFunc) {\n /**\n * x: 目标值\n * lo: 起始位置\n * hi: 结束位置\n */\n return function(a: T[], x: number, _lo?: number, _hi?: number) {\n let lo = isNil(_lo) ? 0 : _lo;\n let hi = isNil(_hi) ? a.length : _hi;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (getter(a[mid]) > x) {\n hi = mid;\n } else {\n lo = mid + 1;\n }\n }\n return lo;\n };\n}\n","import { each, isNumber } from '@antv/util';\nimport { timeFormat, toTimeStamp } from '../util/time';\nimport Category from './base';\n\n/**\n * 时间分类度量\n * @class\n */\nclass TimeCat extends Category {\n public readonly type: string = 'timeCat';\n public mask;\n /**\n * @override\n */\n public translate(value) {\n value = toTimeStamp(value);\n let index = this.values.indexOf(value);\n if (index === -1) {\n if (isNumber(value) && value < this.values.length) {\n index = value;\n } else {\n index = NaN;\n }\n }\n return index;\n }\n\n /**\n * 由于时间类型数据需要转换一下,所以复写 getText\n * @override\n */\n public getText(value: string | number, tickIndex?: number) {\n const index = this.translate(value);\n if (index > -1) {\n let result = this.values[index];\n const formatter = this.formatter;\n result = formatter ? formatter(result, tickIndex) : timeFormat(result, this.mask);\n return result;\n }\n return value;\n }\n protected initCfg() {\n this.tickMethod = 'time-cat';\n this.mask = 'YYYY-MM-DD';\n this.tickCount = 7; // 一般时间数据会显示 7, 14, 30 天的数字\n }\n\n protected setDomain() {\n const values = this.values;\n // 针对时间分类类型,会将时间统一转换为时间戳\n each(values, (v, i) => {\n values[i] = toTimeStamp(v);\n });\n values.sort((v1, v2) => {\n return v1 - v2;\n });\n super.setDomain();\n }\n}\n\nexport default TimeCat;\n","import { filter, getRange, head, isNil, last } from '@antv/util';\nimport Base from '../base';\n\n/**\n * 连续度量的基类\n * @class\n */\nexport default abstract class Continuous extends Base {\n public isContinuous?: boolean = true;\n public nice: boolean;\n\n public scale(value: any): number {\n if (isNil(value)) {\n return NaN;\n }\n const rangeMin = this.rangeMin();\n const rangeMax = this.rangeMax();\n const max = this.max;\n const min = this.min;\n if (max === min) {\n return rangeMin;\n }\n const percent = this.getScalePercent(value);\n return rangeMin + percent * (rangeMax - rangeMin);\n }\n\n protected init() {\n super.init();\n // init 完成后保证 min, max 包含 ticks 的范围\n const ticks = this.ticks;\n const firstTick = head(ticks);\n const lastTick = last(ticks);\n if (firstTick < this.min) {\n this.min = firstTick;\n }\n if (lastTick > this.max) {\n this.max = lastTick;\n }\n // strict-limit 方式\n if (!isNil(this.minLimit)) {\n this.min = firstTick;\n }\n if (!isNil(this.maxLimit)) {\n this.max = lastTick;\n }\n }\n\n protected setDomain() {\n const { min, max } = getRange(this.values);\n if (isNil(this.min)) {\n this.min = min;\n }\n if (isNil(this.max)) {\n this.max = max;\n }\n if (this.min > this.max) {\n this.min = min;\n this.max = max;\n }\n }\n\n protected calculateTicks(): any[] {\n let ticks = super.calculateTicks();\n if (!this.nice) {\n ticks = filter(ticks, (tick) => {\n return tick >= this.min && tick <= this.max;\n });\n }\n return ticks;\n }\n\n // 计算原始值值占的百分比\n protected getScalePercent(value) {\n const max = this.max;\n const min = this.min;\n return (value - min) / (max - min);\n }\n\n protected getInvertPercent(value) {\n return (value - this.rangeMin()) / (this.rangeMax() - this.rangeMin());\n }\n}\n","import Continuous from './base';\n\n/**\n * 线性度量\n * @class\n */\nexport default class Linear extends Continuous {\n public minTickInterval: number;\n public type = 'linear';\n public readonly isLinear: boolean = true;\n\n public invert(value: number): any {\n const percent = this.getInvertPercent(value);\n return this.min + percent * (this.max - this.min);\n }\n\n protected initCfg() {\n this.tickMethod = 'wilkinson-extended';\n this.nice = false;\n }\n}\n","import { each, isNil } from '@antv/util';\n\n// 求以a为次幂,结果为b的基数,如 x^^a = b;求x\n// 虽然数学上 b 不支持负数,但是这里需要支持 负数\nexport function calBase(a: number, b: number) {\n const e = Math.E;\n let value;\n if (b >= 0) {\n value = Math.pow(e, Math.log(b) / a); // 使用换底公式求底\n } else {\n value = Math.pow(e, Math.log(-b) / a) * -1; // 使用换底公式求底\n }\n return value;\n}\n\nexport function log(a: number, b: number) {\n if (a === 1) {\n return 1;\n }\n return Math.log(b) / Math.log(a);\n}\n\nexport function getLogPositiveMin(values, base, max?: number) {\n if (isNil(max)) {\n max = Math.max.apply(null, values);\n }\n let positiveMin = max;\n each(values, (value) => {\n if (value > 0 && value < positiveMin) {\n positiveMin = value;\n }\n });\n if (positiveMin === max) {\n positiveMin = max / base;\n }\n if (positiveMin > 1) {\n positiveMin = 1;\n }\n return positiveMin;\n}\n\nfunction digitLength(num: number) {\n // Get digit length of e\n const eSplit = num.toString().split(/[eE]/);\n const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);\n return len > 0 ? len : 0;\n}\n\n/**\n * 高精度加法,解决 0.1 + 0.2 !== 0.3 的经典问题\n *\n * @param num1 加数\n * @param num2 被加数\n * @return {number} 返回值\n */\nexport function precisionAdd(num1: number, num2: number) {\n const num1Digits = digitLength(num1);\n const num2Digits = digitLength(num2);\n const baseNum = 10 ** Math.max(num1Digits, num2Digits);\n return (num1 * baseNum + num2 * baseNum) / baseNum;\n}\n","import { getLogPositiveMin, log } from '../util/math';\nimport Continuous from './base';\n/**\n * Log 度量,处理非均匀分布\n */\nclass Log extends Continuous {\n public readonly type: string = 'log';\n public base: number;\n // 用于解决 min: 0 的场景下的问题\n private positiveMin: number;\n\n /**\n * @override\n */\n public invert(value: number) {\n const base = this.base;\n const max = log(base, this.max);\n const rangeMin = this.rangeMin();\n const range = this.rangeMax() - rangeMin;\n let min;\n const positiveMin = this.positiveMin;\n if (positiveMin) {\n if (value === 0) {\n return 0;\n }\n min = log(base, positiveMin / base);\n const appendPercent = (1 / (max - min)) * range; // 0 到 positiveMin的占比\n if (value < appendPercent) {\n // 落到 0 - positiveMin 之间\n return (value / appendPercent) * positiveMin;\n }\n } else {\n min = log(base, this.min);\n }\n const percent = (value - rangeMin) / range;\n const tmp = percent * (max - min) + min;\n return Math.pow(base, tmp);\n }\n\n protected initCfg() {\n this.tickMethod = 'log';\n this.base = 10;\n this.tickCount = 6;\n this.nice = true;\n }\n\n // 设置\n protected setDomain() {\n super.setDomain();\n const min = this.min;\n if (min < 0) {\n throw new Error('When you use log scale, the minimum value must be greater than zero!');\n }\n if (min === 0) {\n this.positiveMin = getLogPositiveMin(this.values, this.base, this.max);\n }\n }\n\n // 根据当前值获取占比\n protected getScalePercent(value: number) {\n const max = this.max;\n let min = this.min;\n if (max === min) {\n return 0;\n }\n // 如果值小于等于0,则按照0处理\n if (value <= 0) {\n return 0;\n }\n const base = this.base;\n const positiveMin = this.positiveMin;\n // 如果min == 0, 则根据比0大的最小值,计算比例关系。这个最小值作为坐标轴上的第二个tick,第一个是0但是不显示\n if (positiveMin) {\n min = (positiveMin * 1) / base;\n }\n let percent;\n // 如果数值小于次小值,那么就计算 value / 次小值 占整体的比例\n if (value < positiveMin) {\n percent = value / positiveMin / (log(base, max) - log(base, min));\n } else {\n percent = (log(base, value) - log(base, min)) / (log(base, max) - log(base, min));\n }\n return percent;\n }\n}\n\nexport default Log;\n","import { calBase } from '../util/math';\nimport Continuous from './base';\n\n/**\n * Pow 度量,处理非均匀分布\n */\nclass Pow extends Continuous {\n public readonly type: string = 'pow';\n /**\n * 指数\n */\n public exponent: number;\n\n /**\n * @override\n */\n public invert(value: number) {\n const percent = this.getInvertPercent(value);\n const exponent = this.exponent;\n const max = calBase(exponent, this.max);\n const min = calBase(exponent, this.min);\n const tmp = percent * (max - min) + min;\n const factor = tmp >= 0 ? 1 : -1;\n return Math.pow(tmp, exponent) * factor;\n }\n\n protected initCfg() {\n this.tickMethod = 'pow';\n this.exponent = 2;\n this.tickCount = 5;\n this.nice = true;\n }\n\n // 获取度量计算时,value占的定义域百分比\n protected getScalePercent(value: number) {\n const max = this.max;\n const min = this.min;\n if (max === min) {\n return 0;\n }\n const exponent = this.exponent;\n const percent =\n (calBase(exponent, value) - calBase(exponent, min)) / (calBase(exponent, max) - calBase(exponent, min));\n return percent;\n }\n}\n\nexport default Pow;\n","import { each, isDate, isNil, isNumber, isString } from '@antv/util';\nimport { timeFormat, toTimeStamp } from '../util/time';\nimport Linear from './linear';\n\n/**\n * 时间度量\n * @class\n */\nclass Time extends Linear {\n public readonly type: string = 'time';\n public mask: string;\n\n /**\n * @override\n */\n public getText(value: string | number | Date, index?: number) {\n const numberValue = this.translate(value);\n const formatter = this.formatter;\n return formatter ? formatter(numberValue, index) : timeFormat(numberValue, this.mask);\n }\n /**\n * @override\n */\n public scale(value): number {\n let v = value;\n if (isString(v) || isDate(v)) {\n v = this.translate(v);\n }\n return super.scale(v);\n }\n /**\n * 将时间转换成数字\n * @override\n */\n public translate(v): number {\n return toTimeStamp(v);\n }\n protected initCfg() {\n this.tickMethod = 'time-pretty';\n this.mask = 'YYYY-MM-DD';\n this.tickCount = 7;\n this.nice = false;\n }\n\n protected setDomain() {\n const values = this.values;\n // 是否设置了 min, max,而不是直接取 this.min, this.max\n const minConfig = this.getConfig('min');\n const maxConfig = this.getConfig('max');\n // 如果设置了 min,max 则转换成时间戳\n if (!isNil(minConfig) || !isNumber(minConfig)) {\n this.min = this.translate(this.min);\n }\n if (!isNil(maxConfig) || !isNumber(maxConfig)) {\n this.max = this.translate(this.max);\n }\n // 没有设置 min, max 时\n if (values && values.length) {\n // 重新计算最大最小值\n const timeStamps = [];\n let min = Infinity; // 最小值\n let secondMin = min; // 次小值\n let max = 0;\n // 使用一个循环,计算min,max,secondMin\n each(values, (v) => {\n const timeStamp = toTimeStamp(v);\n if (isNaN(timeStamp)) {\n throw new TypeError(`Invalid Time: ${v} in time scale!`);\n }\n if (min > timeStamp) {\n secondMin = min;\n min = timeStamp;\n } else if (secondMin > timeStamp) {\n secondMin = timeStamp;\n }\n if (max < timeStamp) {\n max = timeStamp;\n }\n timeStamps.push(timeStamp);\n });\n // 存在多个值时,设置最小间距\n if (values.length > 1) {\n this.minTickInterval = secondMin - min;\n }\n if (isNil(minConfig)) {\n this.min = min;\n }\n if (isNil(maxConfig)) {\n this.max = max;\n }\n }\n }\n}\nexport default Time;\n","import { each, head, last } from '@antv/util';\nimport Continuous from './base';\n\n/**\n * 分段度量\n */\nclass Quantize extends Continuous {\n public type = 'quantize';\n\n public invert(value): number {\n const ticks = this.ticks;\n const length = ticks.length;\n const percent = this.getInvertPercent(value);\n const minIndex = Math.floor(percent * (length - 1));\n // 最后一个\n if (minIndex >= length - 1) {\n return last(ticks);\n }\n // 超出左边界, 则取第一个\n if (minIndex < 0) {\n return head(ticks);\n }\n const minTick = ticks[minIndex];\n const nextTick = ticks[minIndex + 1];\n // 比当前值小的 tick 在度量上的占比\n const minIndexPercent = minIndex / (length - 1);\n const maxIndexPercent = (minIndex + 1) / (length - 1);\n return minTick + (percent - minIndexPercent) / (maxIndexPercent - minIndexPercent) * (nextTick - minTick);\n }\n\n protected initCfg() {\n this.tickMethod = 'r-pretty';\n this.tickCount = 5;\n this.nice = true;\n }\n\n protected calculateTicks(): any[] {\n const ticks = super.calculateTicks();\n if (!this.nice) { // 如果 nice = false ,补充 min, max\n if (last(ticks) !== this.max) {\n ticks.push(this.max);\n }\n if (head(ticks) !== this.min) {\n ticks.unshift(this.min);\n }\n }\n return ticks;\n }\n\n // 计算当前值在刻度中的占比\n protected getScalePercent(value) {\n const ticks = this.ticks;\n // 超出左边界\n if (value < head(ticks)) {\n return 0;\n }\n // 超出右边界\n if (value > last(ticks)) {\n return 1;\n }\n let minIndex = 0;\n each(ticks, (tick, index) => {\n if (value >= tick) {\n minIndex = index;\n } else {\n return false;\n }\n });\n return minIndex / (ticks.length - 1);\n }\n}\n\nexport default Quantize;\n","import Quantize from './quantize';\n\nclass Quantile extends Quantize {\n public type = 'quantile';\n protected initCfg() {\n this.tickMethod = 'quantile';\n this.tickCount = 5;\n this.nice = true;\n }\n}\n\nexport default Quantile;\n","import Scale from './base';\nimport { ScaleConfig } from './types';\ntype ScaleConstructor = new (cfg: ScaleConfig) => T;\n\ninterface ScaleMap {\n [key: string]: ScaleConstructor;\n}\n\nconst map: ScaleMap = {};\n\nfunction getClass(key: string): ScaleConstructor {\n return map[key];\n}\n\nfunction registerClass(key: string, cls: ScaleConstructor) {\n if (getClass(key)) {\n throw new Error(`type '${key}' existed.`);\n }\n map[key] = cls;\n}\n\nexport { Scale, getClass as getScale, registerClass as registerScale };\n","import { has, isNumber } from '@antv/util';\nimport Base from '../base';\nimport { ScaleType } from '../types';\n\n/**\n * identity scale原则上是定义域和值域一致,scale/invert方法也是一致的\n * 参考R的实现:https://github.com/r-lib/scales/blob/master/R/pal-identity.r\n * 参考d3的实现(做了下转型):https://github.com/d3/d3-scale/blob/master/src/identity.js\n */\nexport default class Identity extends Base {\n public readonly type: ScaleType = 'identity';\n public readonly isIdentity: boolean = true;\n\n public calculateTicks() {\n return this.values;\n }\n\n public scale(value: any): number {\n // 如果传入的值不等于 identity 的值,则直接返回,用于一维图时的 dodge\n if (this.values[0] !== value && isNumber(value)) {\n return value;\n }\n return this.range[0];\n }\n\n public invert(value?: number): number {\n const range = this.range;\n if (value < range[0] || value > range[1]) {\n return NaN;\n }\n return this.values[0];\n }\n}\n","import { filter, isNil, isNumber, last } from '@antv/util';\nimport { ScaleConfig } from '../types';\n\n/**\n * 计算分类 ticks\n * @param cfg 度量的配置项\n * @returns 计算后的 ticks\n */\nexport default function calculateCatTicks(cfg: ScaleConfig): any[] {\n const { values, tickInterval, tickCount, showLast } = cfg;\n\n if (isNumber(tickInterval)) {\n const ticks = filter(values, (__: any, i: number) => i % tickInterval === 0);\n const lastValue = last(values);\n if (showLast && last(ticks) !== lastValue) {\n ticks.push(lastValue);\n }\n return ticks;\n }\n\n const len = values.length;\n let { min, max } = cfg;\n if (isNil(min)) {\n min = 0;\n }\n if (isNil(max)) {\n max = values.length - 1;\n }\n\n if (!isNumber(tickCount) || tickCount >= len) return values.slice(min, max + 1);\n if (tickCount <= 0 || max <= 0) return [];\n\n const interval = tickCount === 1 ? len : Math.floor(len / (tickCount - 1));\n const ticks = [];\n\n let idx = min;\n for (let i = 0; i < tickCount; i++) {\n if (idx >= max) break;\n\n idx = Math.min(min + i * interval, max);\n if (i === tickCount - 1 && showLast) ticks.push(values[max]);\n else ticks.push(values[idx]);\n }\n return ticks;\n}\n","import { ScaleConfig } from '../types';\n\nexport default function d3Linear(cfg: ScaleConfig): number[] {\n const { min, max, nice, tickCount } = cfg;\n const linear = new D3Linear();\n linear.domain([min, max]);\n if (nice) {\n linear.nice(tickCount);\n }\n return linear.ticks(tickCount);\n}\n\nconst DEFAULT_COUNT = 5;\nconst e10 = Math.sqrt(50);\nconst e5 = Math.sqrt(10);\nconst e2 = Math.sqrt(2);\n\n// https://github.com/d3/d3-scale\nexport class D3Linear {\n private _domain: number[] = [0, 1];\n\n public domain(domain?: number[]): D3Linear | number[] {\n if (domain) {\n this._domain = Array.from(domain, Number);\n return this;\n }\n return this._domain.slice();\n }\n\n public nice(count = DEFAULT_COUNT) {\n const d = this._domain.slice();\n let i0 = 0;\n let i1 = this._domain.length - 1;\n let start = this._domain[i0];\n let stop = this._domain[i1];\n let step;\n\n if (stop < start) {\n [start, stop] = [stop, start];\n [i0, i1] = [i1, i0];\n }\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n this.domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n this.domain(d);\n }\n\n return this;\n }\n\n public ticks(count = DEFAULT_COUNT): number[] {\n return d3ArrayTicks(this._domain[0], this._domain[this._domain.length - 1], count || DEFAULT_COUNT);\n }\n}\n\nfunction d3ArrayTicks(start: number, stop: number, count: number): number[] {\n let reverse;\n let i = -1;\n let n;\n let ticks;\n let step;\n\n (stop = +stop), (start = +start), (count = +count);\n if (start === stop && count > 0) {\n return [start];\n }\n // tslint:disable-next-line\n if ((reverse = stop < start)) {\n (n = start), (start = stop), (stop = n);\n }\n // tslint:disable-next-line\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) {\n return [];\n }\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array((n = Math.ceil(stop - start + 1)));\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array((n = Math.ceil(start - stop + 1)));\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\n\n if (reverse) {\n ticks.reverse();\n }\n\n return ticks;\n}\n\nfunction tickIncrement(start: number, stop: number, count: number): number {\n const step = (stop - start) / Math.max(0, count);\n const power = Math.floor(Math.log(step) / Math.LN10);\n const error = step / Math.pow(10, power);\n\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n","\nimport { fixedBase } from '@antv/util';\n\nfunction snapMultiple(v, base, snapType) {\n let div;\n if (snapType === 'ceil') {\n div = Math.ceil(v / base);\n } else if (snapType === 'floor') {\n div = Math.floor(v / base);\n } else {\n div = Math.round(v / base);\n }\n return div * base;\n}\n\nexport default function intervalTicks(min, max, interval) {\n // 变成 interval 的倍数\n let minTick = snapMultiple(min, interval, 'floor');\n let maxTick = snapMultiple(max, interval, 'ceil');\n // 统一小数位数\n minTick = fixedBase(minTick, interval);\n maxTick = fixedBase(maxTick, interval);\n const ticks = [];\n // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n const availableInterval = Math.max((maxTick - minTick) / (2 ** 12 - 1), interval);\n for (let i = minTick; i <= maxTick; i = i + availableInterval) {\n const tickValue = fixedBase(i, availableInterval); // 防止浮点数加法出现问题\n ticks.push(tickValue);\n }\n return {\n min: minTick,\n max: maxTick,\n ticks\n };\n}","import { isNil } from '@antv/util';\nimport { ScaleConfig } from '../types';\n\n/**\n * 按照给定的 minLimit/maxLimit/tickCount 均匀计算出刻度 ticks\n *\n * @param cfg Scale 配置项\n * @return ticks\n */\nexport default function strictLimit(cfg: ScaleConfig, defaultMin?: number, defaultMax?: number): number[] {\n const { minLimit, maxLimit, min, max, tickCount = 5 } = cfg;\n let tickMin = isNil(minLimit) ? (isNil(defaultMin) ? min : defaultMin) : minLimit;\n let tickMax = isNil(maxLimit) ? (isNil(defaultMax) ? max : defaultMax) : maxLimit;\n\n if (tickMin > tickMax) {\n [tickMax, tickMin] = [tickMin, tickMax];\n }\n\n if (tickCount <= 2) {\n return [tickMin, tickMax];\n }\n\n const step = (tickMax - tickMin) / (tickCount - 1);\n const ticks: number[] = [];\n\n for (let i = 0; i < tickCount; i++) {\n ticks.push(tickMin + step * i);\n }\n\n return ticks;\n}\n","// 为了解决 js 运算的精度问题\nexport function prettyNumber(n: number) {\n return Math.abs(n) < 1e-15 ? n : parseFloat(n.toFixed(15));\n}\n","import { head, indexOf, size, last } from '@antv/util';\nimport { prettyNumber } from './pretty-number';\n\nexport const DEFAULT_Q = [1, 5, 2, 2.5, 4, 3];\n\nexport const ALL_Q = [1, 5, 2, 2.5, 4, 3, 1.5, 7, 6, 8, 9];\n\nconst eps = Number.EPSILON * 100;\n\nfunction mod(n: number, m: number) {\n return ((n % m) + m) % m;\n}\n\nfunction round(n: number) {\n return Math.round(n * 1e12) / 1e12;\n}\n\nfunction simplicity(q: number, Q: number[], j: number, lmin: number, lmax: number, lstep: number) {\n const n = size(Q);\n const i = indexOf(Q, q);\n let v = 0;\n const m = mod(lmin, lstep);\n if ((m < eps || lstep - m < eps) && lmin <= 0 && lmax >= 0) {\n v = 1;\n }\n return 1 - i / (n - 1) - j + v;\n}\n\nfunction simplicityMax(q: number, Q: number[], j: number) {\n const n = size(Q);\n const i = indexOf(Q, q);\n const v = 1;\n return 1 - i / (n - 1) - j + v;\n}\n\nfunction density(k: number, m: number, dMin: number, dMax: number, lMin: number, lMax: number) {\n const r = (k - 1) / (lMax - lMin);\n const rt = (m - 1) / (Math.max(lMax, dMax) - Math.min(dMin, lMin));\n return 2 - Math.max(r / rt, rt / r);\n}\n\nfunction densityMax(k: number, m: number) {\n if (k >= m) {\n return 2 - (k - 1) / (m - 1);\n }\n return 1;\n}\n\nfunction coverage(dMin: number, dMax: number, lMin: number, lMax: number) {\n const range = dMax - dMin;\n return 1 - (0.5 * ((dMax - lMax) ** 2 + (dMin - lMin) ** 2)) / (0.1 * range) ** 2;\n}\n\nfunction coverageMax(dMin: number, dMax: number, span: number) {\n const range = dMax - dMin;\n if (span > range) {\n const half = (span - range) / 2;\n return 1 - half ** 2 / (0.1 * range) ** 2;\n }\n return 1;\n}\n\nfunction legibility() {\n return 1;\n}\n\n/**\n * An Extension of Wilkinson's Algorithm for Position Tick Labels on Axes\n * https://www.yuque.com/preview/yuque/0/2019/pdf/185317/1546999150858-45c3b9c2-4e86-4223-bf1a-8a732e8195ed.pdf\n * @param dMin 最小值\n * @param dMax 最大值\n * @param m tick个数\n * @param onlyLoose 是否允许扩展min、max,不绝对强制,例如[3, 97]\n * @param Q nice numbers集合\n * @param w 四个优化组件的权重\n */\nexport default function extended(\n dMin: number,\n dMax: number,\n n: number = 5,\n onlyLoose: boolean = true,\n Q: number[] = DEFAULT_Q,\n w: [number, number, number, number] = [0.25, 0.2, 0.5, 0.05]\n): { min: number; max: number; ticks: number[] } {\n // 处理小于 0 和小数的 tickCount\n const m = n < 0 ? 0 : Math.round(n);\n\n // nan 也会导致异常\n if (Number.isNaN(dMin) || Number.isNaN(dMax) || typeof dMin !== 'number' || typeof dMax !== 'number' || !m) {\n return {\n min: 0,\n max: 0,\n ticks: [],\n };\n }\n\n // js 极大值极小值问题,差值小于 1e-15 会导致计算出错\n if (dMax - dMin < 1e-15 || m === 1) {\n return {\n min: dMin,\n max: dMax,\n ticks: [dMin],\n };\n }\n\n // js 超大值问题\n if (dMax - dMin > 1e148) {\n const count = n || 5;\n const step = (dMax - dMin) / count;\n return {\n min: dMin,\n max: dMax,\n ticks: Array(count).fill(null).map((_,idx) => {\n return prettyNumber(dMin + step * idx);\n }),\n };\n }\n\n const best = {\n score: -2,\n lmin: 0,\n lmax: 0,\n lstep: 0,\n };\n\n let j = 1;\n while (j < Infinity) {\n for (let i = 0; i < Q.length; i += 1) {\n const q = Q[i];\n const sm = simplicityMax(q, Q, j);\n if (w[0] * sm + w[1] + w[2] + w[3] < best.score) {\n j = Infinity;\n break;\n }\n let k = 2;\n while (k < Infinity) {\n const dm = densityMax(k, m);\n if (w[0] * sm + w[1] + w[2] * dm + w[3] < best.score) {\n break;\n }\n\n const delta = (dMax - dMin) / (k + 1) / j / q;\n let z = Math.ceil(Math.log10(delta));\n\n while (z < Infinity) {\n const step = j * q * 10 ** z;\n const cm = coverageMax(dMin, dMax, step * (k - 1));\n\n if (w[0] * sm + w[1] * cm + w[2] * dm + w[3] < best.score) {\n break;\n }\n\n const minStart = Math.floor(dMax / step) * j - (k - 1) * j;\n const maxStart = Math.ceil(dMin / step) * j;\n\n if (minStart <= maxStart) {\n const count = maxStart - minStart;\n for (let i = 0; i <= count; i += 1) {\n const start = minStart + i;\n const lMin = start * (step / j);\n const lMax = lMin + step * (k - 1);\n const lStep = step;\n\n const s = simplicity(q, Q, j, lMin, lMax, lStep);\n const c = coverage(dMin, dMax, lMin, lMax);\n const g = density(k, m, dMin, dMax, lMin, lMax);\n const l = legibility();\n\n const score = w[0] * s + w[1] * c + w[2] * g + w[3] * l;\n if (score > best.score && (!onlyLoose || (lMin <= dMin && lMax >= dMax))) {\n best.lmin = lMin;\n best.lmax = lMax;\n best.lstep = lStep;\n best.score = score;\n }\n }\n }\n z += 1;\n }\n k += 1;\n }\n }\n j += 1;\n }\n\n // 处理精度问题,保证这三个数没有精度问题\n const lmax = prettyNumber(best.lmax);\n const lmin = prettyNumber(best.lmin);\n const lstep = prettyNumber(best.lstep);\n\n // 加 round 是为处理 extended(0.94, 1, 5)\n // 保证生成的 tickCount 没有精度问题\n const tickCount = Math.floor(round((lmax - lmin) / lstep)) + 1;\n const ticks = new Array(tickCount);\n\n // 少用乘法:防止出现 -1.2 + 1.2 * 3 = 2.3999999999999995 的情况\n ticks[0] = prettyNumber(lmin);\n for (let i = 1; i < tickCount; i++) {\n ticks[i] = prettyNumber(ticks[i - 1] + lstep);\n }\n\n return {\n min: Math.min(dMin, head(ticks)),\n max: Math.max(dMax, last(ticks)),\n ticks,\n };\n}\n","import { prettyNumber } from './pretty-number';\n\nexport default function pretty(min: number, max: number, m: number = 5) {\n if (min === max) {\n return {\n max,\n min,\n ticks: [min],\n };\n }\n\n const n = m < 0 ? 0 : Math.round(m);\n if (n === 0) return { max, min, ticks: [] };\n\n /*\n R pretty:\n https://svn.r-project.org/R/trunk/src/appl/pretty.c\n https://www.rdocumentation.org/packages/base/versions/3.5.2/topics/pretty\n */\n const h = 1.5; // high.u.bias\n const h5 = 0.5 + 1.5 * h; // u5.bias\n // 反正我也不会调参,跳过所有判断步骤\n const d = max - min;\n const c = d / n;\n // 当d非常小的时候触发,但似乎没什么用\n // const min_n = Math.floor(n / 3);\n // const shrink_sml = Math.pow(2, 5);\n // if (Math.log10(d) < -2) {\n // c = (_.max([ Math.abs(max), Math.abs(min) ]) * shrink_sml) / min_n;\n // }\n\n const base = Math.pow(10, Math.floor(Math.log10(c)));\n let unit = base;\n if (2 * base - c < h * (c - unit)) {\n unit = 2 * base;\n if (5 * base - c < h5 * (c - unit)) {\n unit = 5 * base;\n if (10 * base - c < h * (c - unit)) {\n unit = 10 * base;\n }\n }\n }\n const nu = Math.ceil(max / unit);\n const ns = Math.floor(min / unit);\n\n const hi = Math.max(nu * unit, max);\n const lo = Math.min(ns * unit, min);\n\n const size = Math.floor((hi - lo) / unit) + 1;\n const ticks = new Array(size);\n for (let i = 0; i < size; i++) {\n ticks[i] = prettyNumber(lo + i * unit);\n }\n\n return {\n min: lo,\n max: hi,\n ticks,\n };\n}\n","import { ScaleConfig } from '../types';\n/**\n * 计算几分位 https://github.com/simple-statistics/simple-statistics/blob/master/src/quantile_sorted.js\n * @param x 数组\n * @param p 百分比\n */\nfunction quantileSorted(x, p) {\n const idx = x.length * p;\n /*if (x.length === 0) { // 当前场景这些条件不可能命中\n throw new Error('quantile requires at least one value.');\n } else if (p < 0 || p > 1) {\n throw new Error('quantiles must be between 0 and 1');\n } else */\n \n if (p === 1) {\n // If p is 1, directly return the last element\n return x[x.length - 1];\n } else if (p === 0) {\n // If p is 0, directly return the first element\n return x[0];\n } else if (idx % 1 !== 0) {\n // If p is not integer, return the next element in array\n return x[Math.ceil(idx) - 1];\n } else if (x.length % 2 === 0) {\n // If the list has even-length, we'll take the average of this number\n // and the next value, if there is one\n return (x[idx - 1] + x[idx]) / 2;\n } else {\n // Finally, in the simple case of an integer value\n // with an odd-length list, return the x value at the index.\n return x[idx];\n }\n}\n\nexport default function calculateTicks(cfg: ScaleConfig) {\n const { tickCount, values } = cfg;\n if (!values || !values.length) {\n return [];\n }\n const sorted = values.slice().sort((a, b) => {\n return a - b;\n });\n const ticks = [];\n for (let i = 0; i < tickCount; i++) {\n const p = i / (tickCount - 1);\n ticks.push(quantileSorted(sorted, p));\n }\n return ticks;\n}\n","import { ScaleConfig } from '../types';\nimport { DAY, getTickInterval, HOUR, MINUTE, MONTH, SECOND, YEAR } from '../util/time';\n\nfunction getYear(date: number) {\n return new Date(date).getFullYear();\n}\n\nfunction createYear(year: number) {\n return new Date(year, 0, 1).getTime();\n}\n\nfunction getMonth(date: number) {\n return new Date(date).getMonth();\n}\n\nfunction diffMonth(min: number, max: number) {\n const minYear = getYear(min);\n const maxYear = getYear(max);\n const minMonth = getMonth(min);\n const maxMonth = getMonth(max);\n return (maxYear - minYear) * 12 + ((maxMonth - minMonth) % 12);\n}\n\nfunction creatMonth(year: number, month: number) {\n return new Date(year, month, 1).getTime();\n}\n\nfunction diffDay(min: number, max: number) {\n return Math.ceil((max - min) / DAY);\n}\n\nfunction diffHour(min: number, max: number) {\n return Math.ceil((max - min) / HOUR);\n}\n\nfunction diffMinus(min: number, max: number) {\n return Math.ceil((max - min) / (60 * 1000));\n}\n\n/**\n * 计算 time 的 ticks,对 month, year 进行 pretty 处理\n * @param cfg 度量的配置项\n * @returns 计算后的 ticks\n */\nexport default function timePretty(cfg: ScaleConfig): number[] {\n const { min, max, minTickInterval, tickCount } = cfg;\n let { tickInterval } = cfg;\n const ticks: number[] = [];\n // 指定 tickInterval 后 tickCount 不生效,需要重新计算\n if (!tickInterval) {\n tickInterval = (max - min) / tickCount;\n // 如果设置了最小间距,则使用最小间距\n if (minTickInterval && tickInterval < minTickInterval) {\n tickInterval = minTickInterval;\n }\n }\n tickInterval = Math.max(Math.floor((max - min) / (2 ** 12 - 1)), tickInterval);\n const minYear = getYear(min);\n // 如果间距大于 1 年,则将开始日期从整年开始\n if (tickInterval > YEAR) {\n const maxYear = getYear(max);\n const yearInterval = Math.ceil(tickInterval / YEAR);\n for (let i = minYear; i <= maxYear + yearInterval; i = i + yearInterval) {\n ticks.push(createYear(i));\n }\n } else if (tickInterval > MONTH) {\n // 大于月时\n const monthInterval = Math.ceil(tickInterval / MONTH);\n const mmMoth = getMonth(min);\n const dMonths = diffMonth(min, max);\n for (let i = 0; i <= dMonths + monthInterval; i = i + monthInterval) {\n ticks.push(creatMonth(minYear, i + mmMoth));\n }\n } else if (tickInterval > DAY) {\n // 大于天\n const date = new Date(min);\n const year = date.getFullYear();\n const month = date.getMonth();\n const mday = date.getDate();\n const day = Math.ceil(tickInterval / DAY);\n const ddays = diffDay(min, max);\n for (let i = 0; i < ddays + day; i = i + day) {\n ticks.push(new Date(year, month, mday + i).getTime());\n }\n } else if (tickInterval > HOUR) {\n // 大于小时\n const date = new Date(min);\n const year = date.getFullYear();\n const month = date.getMonth();\n const day = date.getDate();\n const hour = date.getHours();\n const hours = Math.ceil(tickInterval / HOUR);\n const dHours = diffHour(min, max);\n for (let i = 0; i <= dHours + hours; i = i + hours) {\n ticks.push(new Date(year, month, day, hour + i).getTime());\n }\n } else if (tickInterval > MINUTE) {\n // 大于分钟\n const dMinus = diffMinus(min, max);\n const minutes = Math.ceil(tickInterval / MINUTE);\n for (let i = 0; i <= dMinus + minutes; i = i + minutes) {\n ticks.push(min + i * MINUTE);\n }\n } else {\n // 小于分钟\n let interval = tickInterval;\n if (interval < SECOND) {\n interval = SECOND;\n }\n const minSecond = Math.floor(min / SECOND) * SECOND;\n const dSeconds = Math.ceil((max - min) / SECOND);\n const seconds = Math.ceil(interval / SECOND);\n for (let i = 0; i < dSeconds + seconds; i = i + seconds) {\n ticks.push(minSecond + i * SECOND);\n }\n }\n\n // 最好是能从算法能解决这个问题,但是如果指定了 tickInterval,计算 ticks,也只能这么算,所以\n // 打印警告提示\n if (ticks.length >= 512) {\n console.warn(`Notice: current ticks length(${ticks.length}) >= 512, may cause performance issues, even out of memory. Because of the configure \"tickInterval\"(in milliseconds, current is ${tickInterval}) is too small, increase the value to solve the problem!`);\n }\n\n return ticks;\n}\n","import cat from './cat';\nimport d3Linear from './d3-linear';\nimport linear from './linear';\nimport log from './log';\nimport pow from './pow';\nimport quantile from './quantile';\nimport rPretty from './r-prettry';\nimport { getTickMethod, registerTickMethod } from './register';\nimport time from './time';\nimport timeCat from './time-cat';\nimport timePretty from './time-pretty';\n\nregisterTickMethod('cat', cat);\nregisterTickMethod('time-cat', timeCat);\nregisterTickMethod('wilkinson-extended', linear);\nregisterTickMethod('r-pretty', rPretty);\nregisterTickMethod('time', time);\nregisterTickMethod('time-pretty', timePretty);\nregisterTickMethod('log', log);\nregisterTickMethod('pow', pow);\nregisterTickMethod('quantile', quantile);\nregisterTickMethod('d3-linear', d3Linear);\n\nexport { getTickMethod, registerTickMethod };\n","import { ScaleConfig } from '../types';\nimport catTicks from './cat';\n/**\n * 计算时间分类的 ticks, 保头,保尾\n * @param cfg 度量的配置项\n * @returns 计算后的 ticks\n */\nexport default function timeCat(cfg: ScaleConfig): any[] {\n // 默认保留最后一条\n const ticks = catTicks({ showLast: true, ...cfg });\n return ticks;\n}\n","import { head, isNil, last } from '@antv/util';\nimport { ScaleConfig } from '../types';\nimport extended from '../util/extended';\nimport interval from '../util/interval';\nimport strictLimit from '../util/strict-limit';\n\n/**\n * 计算线性的 ticks,使用 wilkinson extended 方法\n * @param cfg 度量的配置项\n * @returns 计算后的 ticks\n */\nexport default function linear(cfg: ScaleConfig): number[] {\n const { min, max, tickCount, nice, tickInterval, minLimit, maxLimit } = cfg;\n const ticks = extended(min, max, tickCount, nice).ticks;\n\n if (!isNil(minLimit) || !isNil(maxLimit)) {\n return strictLimit(cfg, head(ticks), last(ticks));\n }\n if (tickInterval) {\n return interval(min, max, tickInterval).ticks;\n }\n return ticks;\n}\n","import { head, isNil, last } from '@antv/util';\nimport { ScaleConfig } from '../types';\nimport interval from '../util/interval';\nimport pretty from '../util/pretty';\nimport strictLimit from '../util/strict-limit';\n\n/**\n * 计算线性的 ticks,使用 R's pretty 方法\n * @param cfg 度量的配置项\n * @returns 计算后的 ticks\n */\nexport default function linearPretty(cfg: ScaleConfig): number[] {\n const { min, max, tickCount, tickInterval, minLimit, maxLimit } = cfg;\n const ticks = pretty(min, max, tickCount).ticks;\n\n if (!isNil(minLimit) || !isNil(maxLimit)) {\n return strictLimit(cfg, head(ticks), last(ticks));\n }\n if (tickInterval) {\n return interval(min, max, tickInterval).ticks;\n }\n return ticks;\n}\n","import { ScaleConfig } from '../types';\nimport { getTickInterval } from '../util/time';\n\nexport default function calculateTimeTicks(cfg: ScaleConfig): number[] {\n const { min, max, minTickInterval } = cfg;\n let tickInterval = cfg.tickInterval;\n let tickCount = cfg.tickCount;\n // 指定 tickInterval 后 tickCount 不生效,需要重新计算\n if (tickInterval) {\n tickCount = Math.ceil((max - min) / tickInterval);\n } else {\n tickInterval = getTickInterval(min, max, tickCount)[1];\n const count = (max - min) / tickInterval;\n const ratio = count / tickCount;\n if (ratio > 1) {\n tickInterval = tickInterval * Math.ceil(ratio);\n }\n // 如果设置了最小间距,则使用最小间距\n if (minTickInterval && tickInterval < minTickInterval) {\n tickInterval = minTickInterval;\n }\n }\n\n tickInterval = Math.max(Math.floor((max - min) / (2 ** 12 - 1)), tickInterval);\n const ticks = [];\n for (let i = min; i < max + tickInterval; i += tickInterval) {\n ticks.push(i);\n }\n return ticks;\n}\n","import { isEmpty } from '@antv/util';\nimport { ScaleConfig } from '../types';\nimport { getLogPositiveMin, log } from '../util/math';\n\n/**\n * 计算 log 的 ticks,考虑 min = 0 的场景\n * @param cfg 度量的配置项\n * @returns 计算后的 ticks\n */\nexport default function calculateLogTicks(cfg: ScaleConfig) {\n const { base, tickCount, min, max, values } = cfg;\n let minTick;\n const maxTick = log(base, max);\n if (min > 0) {\n minTick = Math.floor(log(base, min));\n } else {\n const positiveMin = getLogPositiveMin(values, base, max);\n minTick = Math.floor(log(base, positiveMin));\n }\n const count = maxTick - minTick;\n const avg = Math.ceil(count / tickCount);\n const ticks = [];\n for (let i = minTick; i < maxTick + avg; i = i + avg) {\n ticks.push(Math.pow(base, i));\n }\n if (min <= 0) {\n // 最小值 <= 0 时显示 0\n ticks.unshift(0);\n }\n return ticks;\n}\n","import { ScaleConfig } from '../types';\nimport { calBase } from '../util/math';\nimport pretty from '../util/pretty';\n/**\n * 计算 Pow 的 ticks\n * @param cfg 度量的配置项\n * @returns 计算后的 ticks\n */\nexport default function calculatePowTicks(cfg: ScaleConfig) {\n const { exponent, tickCount } = cfg;\n const max = Math.ceil(calBase(exponent, cfg.max));\n const min = Math.floor(calBase(exponent, cfg.min));\n const ticks = pretty(min, max, tickCount).ticks;\n return ticks.map((tick) => {\n const factor = tick >= 0 ? 1 : -1;\n return Math.pow(tick, exponent) * factor;\n });\n}\n","import { head, isNil, last } from '@antv/util';\nimport { ScaleConfig } from '../types';\nimport d3Linear from '../util/d3-linear';\nimport interval from '../util/interval';\nimport strictLimit from '../util/strict-limit';\n\nexport default function d3LinearTickMethod(cfg: ScaleConfig): number[] {\n const { min, max, tickInterval, minLimit, maxLimit } = cfg;\n const ticks = d3Linear(cfg);\n\n if (!isNil(minLimit) || !isNil(maxLimit)) {\n return strictLimit(cfg, head(ticks), last(ticks));\n }\n if (tickInterval) {\n return interval(min, max, tickInterval).ticks;\n }\n return ticks;\n}\n","import Scale from './base';\nimport Category from './category/base';\nimport TimeCat from './category/time';\nimport Linear from './continuous/linear';\nimport Log from './continuous/log';\nimport Pow from './continuous/pow';\nimport Time from './continuous/time';\nimport Quantize from './continuous/quantize';\nimport Quantile from './continuous/quantile';\nimport { getScale, registerScale } from './factory';\nimport Identity from './identity/index';\nimport { getTickMethod, registerTickMethod } from './tick-method/index';\nimport { ScaleConfig, Tick } from './types';\n\nregisterScale('cat', Category);\nregisterScale('category', Category);\nregisterScale('identity', Identity);\nregisterScale('linear', Linear);\nregisterScale('log', Log);\nregisterScale('pow', Pow);\nregisterScale('time', Time);\nregisterScale('timeCat', TimeCat);\nregisterScale('quantize', Quantize);\nregisterScale('quantile', Quantile);\n\nexport {\n Category,\n Identity,\n Linear,\n Log,\n Pow,\n Time,\n TimeCat,\n Quantile,\n Quantize,\n Scale,\n getScale,\n registerScale,\n ScaleConfig,\n Tick,\n getTickMethod,\n registerTickMethod,\n};\n","import Attribute, { AttributeConstructor } from './attributes/base';\n\ninterface AttributeMapType {\n [key: string]: any;\n}\n\n// 所有的 attribute map\nconst ATTRIBUTE_MAP: AttributeMapType = {};\n\n/**\n * 通过类型获得 Attribute 类\n * @param type\n */\nconst getAttribute = (type: string) => {\n return ATTRIBUTE_MAP[type.toLowerCase()];\n};\n\nconst registerAttribute = (type: string, ctor: AttributeConstructor) => {\n // 注册的时候,需要校验 type 重名,不区分大小写\n if (getAttribute(type)) {\n throw new Error(`Attribute type '${type}' existed.`);\n }\n // 存储到 map 中\n ATTRIBUTE_MAP[type.toLowerCase()] = ctor;\n};\n\nexport { getAttribute, registerAttribute, Attribute };\nexport * from './interface';\n","import Attribute from './attributes/base';\n\nimport Color from './attributes/color';\nimport Opacity from './attributes/opacity';\nimport Position from './attributes/position';\nimport Shape from './attributes/shape';\nimport Size from './attributes/size';\n\nimport { getAttribute, registerAttribute } from './factory';\n\nregisterAttribute('Color', Color);\nregisterAttribute('Opacity', Opacity);\nregisterAttribute('Position', Position);\nregisterAttribute('Shape', Shape);\nregisterAttribute('Size', Size);\n\nexport {\n registerAttribute,\n getAttribute,\n Attribute,\n // 以下 export 是为了兼容,理论上是不需要的\n Color,\n Opacity,\n Position,\n Shape,\n Size,\n};\n\nexport * from './interface';\n","import * as glMatrix from \"./common.js\";\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","import { ext, mat3, vec3 } from '@antv/matrix-util';\nimport { assign } from '@antv/util';\nimport { CoordinateCfg, ICoordinate, Point, Range } from '../interface';\n\nexport type CoordinateCtor = new (cfg: any) => Coordinate;\nexport type Vector2 = [number, number];\nexport type Vector3 = [number, number, number];\nexport type Matrix3 = [number, number, number, number, number, number, number, number, number];\n\n/**\n * Coordinate Base Class\n */\nexport default abstract class Coordinate implements ICoordinate {\n // 自身属性\n public readonly type: string = 'coordinate';\n public readonly isRect: boolean = false;\n public readonly isHelix: boolean = false;\n public readonly isPolar: boolean = false;\n\n // 外部属性\n public start: Point;\n public end: Point;\n public matrix: Matrix3;\n public isTransposed: boolean;\n\n // 极坐标下的属性\n public startAngle: number;\n public endAngle: number;\n public innerRadius: number;\n public radius: number;\n\n public x: Range;\n public y: Range;\n\n // 计算属性,通过相应的 get 方法获取,所以使用 protected 访问修饰符\n protected center: Point;\n protected width: number;\n protected height: number;\n private isReflectX = false;\n private isReflectY = false;\n // 初始构造时候的 matrix,存储起来用于 reset\n private originalMatrix: Matrix3;\n\n constructor(cfg: CoordinateCfg) {\n const { start, end, matrix = [1, 0, 0, 0, 1, 0, 0, 0, 1], isTransposed = false } = cfg;\n this.start = start;\n this.end = end;\n this.matrix = matrix as Matrix3;\n this.originalMatrix = [...matrix] as Matrix3; // 去除引用\n this.isTransposed = isTransposed;\n }\n\n /**\n * 初始化流程\n */\n public initial() {\n // center、width、height\n this.center = {\n x: (this.start.x + this.end.x) / 2,\n y: (this.start.y + this.end.y) / 2,\n };\n\n this.width = Math.abs(this.end.x - this.start.x);\n this.height = Math.abs(this.end.y - this.start.y);\n }\n\n /**\n * 更新配置\n * @param cfg\n */\n public update(cfg: CoordinateCfg) {\n assign(this, cfg);\n this.initial();\n }\n\n public convertDim(percent: number, dim: string): number {\n let { start, end } = this[dim];\n\n // 交换\n if (this.isReflect(dim)) {\n [start, end] = [end, start];\n }\n\n return start + percent * (end - start);\n }\n\n public invertDim(value: number, dim: string): number {\n let { start, end } = this[dim];\n // 交换\n if (this.isReflect(dim)) {\n [start, end] = [end, start];\n }\n\n return (value - start) / (end - start);\n }\n\n /**\n * 将坐标点进行矩阵变换\n * @param x 对应 x 轴画布坐标\n * @param y 对应 y 轴画布坐标\n * @param tag 默认为 0,可取值 0, 1\n * @return 返回变换后的三阶向量 [x, y, z]\n */\n public applyMatrix(x: number, y: number, tag: number = 0): number[] {\n const matrix = this.matrix;\n const vector: Vector3 = [x, y, tag];\n vec3.transformMat3(vector, vector, matrix);\n return vector;\n }\n\n /**\n * 将坐标点进行矩阵逆变换\n * @param x 对应 x 轴画布坐标\n * @param y 对应 y 轴画布坐标\n * @param tag 默认为 0,可取值 0, 1\n * @return 返回矩阵逆变换后的三阶向量 [x, y, z]\n */\n public invertMatrix(x: number, y: number, tag: number = 0): number[] {\n const matrix = this.matrix;\n const inverted = mat3.invert([0, 0, 0, 0, 0, 0, 0, 0, 0], matrix);\n const vector: Vector3 = [x, y, tag];\n if (inverted) {\n // 如果为空则不进行矩阵变化,防止报错\n vec3.transformMat3(vector, vector, inverted);\n }\n return vector;\n }\n\n /**\n * 将归一化的坐标点数据转换为画布坐标,并根据坐标系当前矩阵进行变换\n * @param point 归一化的坐标点\n * @return 返回进行矩阵变换后的画布坐标\n */\n public convert(point: Point): Point {\n const { x, y } = this.convertPoint(point);\n const vector = this.applyMatrix(x, y, 1);\n return {\n x: vector[0],\n y: vector[1],\n };\n }\n\n /**\n * 将进行过矩阵变换画布坐标转换为归一化坐标\n * @param point 画布坐标\n * @return 返回归一化的坐标点\n */\n public invert(point: Point): Point {\n const vector = this.invertMatrix(point.x, point.y, 1);\n return this.invertPoint({\n x: vector[0],\n y: vector[1],\n });\n }\n\n /**\n * 坐标系旋转变换\n * @param radian 旋转弧度\n * @return 返回坐标系对象\n */\n public rotate(radian: number) {\n const matrix = this.matrix;\n const center = this.center;\n ext.leftTranslate(matrix, matrix, [-center.x, -center.y]);\n ext.leftRotate(matrix, matrix, radian);\n ext.leftTranslate(matrix, matrix, [center.x, center.y]);\n return this;\n }\n\n /**\n * 坐标系反射变换\n * @param dim 反射维度\n * @return 返回坐标系对象\n */\n public reflect(dim: string) {\n if (dim === 'x') {\n this.isReflectX = !this.isReflectX;\n } else {\n this.isReflectY = !this.isReflectY;\n }\n return this;\n }\n\n /**\n * 坐标系比例变换\n * @param s1 x 方向缩放比例\n * @param s2 y 方向缩放比例\n * @return 返回坐标系对象\n */\n public scale(s1: number, s2: number) {\n const matrix = this.matrix;\n const center = this.center;\n ext.leftTranslate(matrix, matrix, [-center.x, -center.y]);\n ext.leftScale(matrix, matrix, [s1, s2]);\n ext.leftTranslate(matrix, matrix, [center.x, center.y]);\n return this;\n }\n\n /**\n * 坐标系平移变换\n * @param x x 方向平移像素\n * @param y y 方向平移像素\n * @return 返回坐标系对象\n */\n public translate(x: number, y: number) {\n const matrix = this.matrix;\n ext.leftTranslate(matrix, matrix, [x, y]);\n return this;\n }\n\n /**\n * 将坐标系 x y 两个轴进行转置\n * @return 返回坐标系对象\n */\n public transpose() {\n this.isTransposed = !this.isTransposed;\n return this;\n }\n\n public getCenter(): Point {\n return this.center;\n }\n\n public getWidth(): number {\n return this.width;\n }\n\n public getHeight(): number {\n return this.height;\n }\n\n public getRadius(): number {\n return this.radius;\n }\n\n /**\n * whether has reflect\n * @param dim\n */\n public isReflect(dim: string): boolean {\n return dim === 'x' ? this.isReflectX : this.isReflectY;\n }\n\n /**\n * 重置 matrix\n * @param matrix 如果传入,则使用,否则使用构造函数中传入的默认 matrix\n */\n public resetMatrix(matrix?: Matrix3) {\n // 去除引用关系\n this.matrix = matrix ? matrix : ([...this.originalMatrix] as Matrix3);\n }\n\n /**\n * 将归一化的坐标点数据转换为画布坐标\n * @param point\n */\n public abstract convertPoint(point: Point): Point;\n\n /**\n * 画布坐标转换为归一化的坐标点数据\n * @param point\n */\n public abstract invertPoint(point: Point): Point;\n}\n","import { CoordinateCfg, Point } from '../interface';\nimport Coordinate from './base';\n\n/**\n * 笛卡尔坐标系\n * https://www.zhihu.com/question/20665303\n */\nexport default class Cartesian extends Coordinate {\n public readonly isRect: boolean = true;\n public readonly type: string = 'cartesian';\n\n constructor(cfg: CoordinateCfg) {\n super(cfg);\n\n this.initial();\n }\n\n public initial() {\n super.initial();\n\n const start = this.start;\n const end = this.end;\n\n this.x = {\n start: start.x,\n end: end.x,\n };\n this.y = {\n start: start.y,\n end: end.y,\n };\n }\n\n public convertPoint(point: Point) {\n let { x, y } = point;\n\n // 交换\n if (this.isTransposed) {\n [x, y] = [y, x];\n }\n return {\n x: this.convertDim(x, 'x'),\n y: this.convertDim(y, 'y'),\n };\n }\n\n public invertPoint(point: Point) {\n let x = this.invertDim(point.x, 'x');\n let y = this.invertDim(point.y, 'y');\n\n if (this.isTransposed) {\n [x, y] = [y, x];\n }\n\n return { x, y };\n }\n}\n","import { ext, vec2 } from '@antv/matrix-util';\nimport { isNumberEqual } from '@antv/util';\nimport { Point, PolarCfg } from '../interface';\nimport Coordinate, { Vector2 } from './base';\n\n/**\n * 螺旋坐标系\n */\nexport default class Helix extends Coordinate {\n public readonly isHelix: boolean = true;\n public readonly type: string = 'helix';\n\n // 螺线系数\n private a: number;\n private d: number;\n\n constructor(cfg: PolarCfg) {\n super(cfg);\n\n const { startAngle = 1.25 * Math.PI, endAngle = 7.25 * Math.PI, innerRadius = 0, radius } = cfg;\n\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n this.innerRadius = innerRadius;\n this.radius = radius;\n\n this.initial();\n }\n\n public initial() {\n super.initial();\n\n const index: number = (this.endAngle - this.startAngle) / (2 * Math.PI) + 1; // 螺线圈数\n let maxRadius: number = Math.min(this.width, this.height) / 2;\n\n if (this.radius && this.radius >= 0 && this.radius <= 1) {\n maxRadius = maxRadius * this.radius;\n }\n\n this.d = Math.floor((maxRadius * (1 - this.innerRadius)) / index);\n this.a = this.d / (Math.PI * 2); // 螺线系数\n\n this.x = {\n start: this.startAngle,\n end: this.endAngle,\n };\n this.y = {\n start: this.innerRadius * maxRadius,\n end: this.innerRadius * maxRadius + this.d * 0.99,\n };\n }\n\n /**\n * 将百分比数据变成屏幕坐标\n * @param point 归一化的点坐标\n * @return 返回对应的屏幕坐标\n */\n public convertPoint(point: Point): Point {\n let { x, y } = point;\n if (this.isTransposed) {\n [x, y] = [y, x];\n }\n\n const thi = this.convertDim(x, 'x');\n const r = this.a * thi;\n const newY = this.convertDim(y, 'y');\n\n return {\n x: this.center.x + Math.cos(thi) * (r + newY),\n y: this.center.y + Math.sin(thi) * (r + newY),\n };\n }\n\n /**\n * 将屏幕坐标点还原成百分比数据\n * @param point 屏幕坐标\n * @return 返回对应的归一化后的数据\n */\n public invertPoint(point: Point): Point {\n const d = this.d + this.y.start;\n\n const v = vec2.subtract([0, 0], [point.x, point.y], [this.center.x, this.center.y]) as Vector2;\n\n let thi = ext.angleTo(v, [1, 0], true);\n let rMin = thi * this.a; // 坐标与原点的连线在第一圈上的交点,最小r值\n\n if (vec2.length(v) < rMin) {\n // 坐标与原点的连线不可能小于最小r值,但不排除因小数计算产生的略小于rMin的情况\n rMin = vec2.length(v);\n }\n\n const index = Math.floor((vec2.length(v) - rMin) / d); // 当前点位于第index圈\n thi = 2 * index * Math.PI + thi;\n const r = this.a * thi;\n let newY = vec2.length(v) - r;\n newY = isNumberEqual(newY, 0) ? 0 : newY;\n\n let x = this.invertDim(thi, 'x');\n let y = this.invertDim(newY, 'y');\n x = isNumberEqual(x, 0) ? 0 : x;\n y = isNumberEqual(y, 0) ? 0 : y;\n\n if (this.isTransposed) {\n [x, y] = [y, x];\n }\n\n return { x, y };\n }\n}\n","import { ext, vec2, vec3 } from '@antv/matrix-util';\nimport { isNumberEqual } from '@antv/util';\nimport { Point, PolarCfg } from '../interface';\nimport Coordinate, { Matrix3, Vector2, Vector3 } from './base';\n\nexport default class Polar extends Coordinate {\n public readonly isPolar: boolean = true;\n public readonly type: string = 'polar';\n\n public circleCenter: Point;\n\n // 极坐标的半径值,区别于用户设置的归一化 radius\n private polarRadius: number;\n\n constructor(cfg: PolarCfg) {\n super(cfg);\n\n const { startAngle = -Math.PI / 2, endAngle = (Math.PI * 3) / 2, innerRadius = 0, radius } = cfg;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n this.innerRadius = innerRadius;\n this.radius = radius;\n\n this.initial();\n }\n\n public initial() {\n super.initial();\n\n while (this.endAngle < this.startAngle) {\n this.endAngle += Math.PI * 2;\n }\n\n const oneBox = this.getOneBox();\n\n const oneWidth = oneBox.maxX - oneBox.minX;\n const oneHeight = oneBox.maxY - oneBox.minY;\n\n const left = Math.abs(oneBox.minX) / oneWidth;\n const top = Math.abs(oneBox.minY) / oneHeight;\n\n let maxRadius: number;\n\n if (this.height / oneHeight > this.width / oneWidth) {\n // width 为主\n maxRadius = this.width / oneWidth;\n this.circleCenter = {\n x: this.center.x - (0.5 - left) * this.width,\n y: this.center.y - (0.5 - top) * maxRadius * oneHeight,\n };\n } else {\n // height 为主\n maxRadius = this.height / oneHeight;\n this.circleCenter = {\n x: this.center.x - (0.5 - left) * maxRadius * oneWidth,\n y: this.center.y - (0.5 - top) * this.height,\n };\n }\n\n this.polarRadius = this.radius;\n if (!this.radius) {\n this.polarRadius = maxRadius;\n } else if (this.radius > 0 && this.radius <= 1) {\n this.polarRadius = maxRadius * this.radius;\n } else if (this.radius <= 0 || this.radius > maxRadius) {\n this.polarRadius = maxRadius;\n }\n\n this.x = {\n start: this.startAngle,\n end: this.endAngle,\n };\n\n this.y = {\n start: this.innerRadius * this.polarRadius,\n end: this.polarRadius,\n };\n }\n\n public getRadius() {\n return this.polarRadius;\n }\n\n public convertPoint(point: Point): Point {\n const center = this.getCenter();\n\n let { x, y } = point;\n\n if (this.isTransposed) {\n [x, y] = [y, x];\n }\n\n x = this.convertDim(x, 'x');\n y = this.convertDim(y, 'y');\n\n return {\n x: center.x + Math.cos(x) * y,\n y: center.y + Math.sin(x) * y,\n };\n }\n\n public invertPoint(point: Point): Point {\n const center = this.getCenter();\n const vPoint: Vector2 = [point.x - center.x, point.y - center.y];\n\n let { startAngle, endAngle } = this;\n if (this.isReflect('x')) {\n [startAngle, endAngle] = [endAngle, startAngle];\n }\n\n const m: Matrix3 = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n ext.leftRotate(m, m, startAngle);\n\n const vStart3: Vector3 = [1, 0, 0];\n vec3.transformMat3(vStart3, vStart3, m);\n const vStart2: Vector2 = [vStart3[0], vStart3[1]];\n let angle = ext.angleTo(vStart2, vPoint, endAngle < startAngle);\n if (isNumberEqual(angle, Math.PI * 2)) {\n angle = 0;\n }\n const radius = vec2.length(vPoint);\n\n let xPercent = angle / (endAngle - startAngle);\n xPercent = endAngle - startAngle > 0 ? xPercent : -xPercent;\n\n const yPercent = this.invertDim(radius, 'y');\n const rst = { x: 0, y: 0 };\n rst.x = this.isTransposed ? yPercent : xPercent;\n rst.y = this.isTransposed ? xPercent : yPercent;\n return rst;\n }\n\n public getCenter() {\n return this.circleCenter;\n }\n\n private getOneBox() {\n const startAngle = this.startAngle;\n const endAngle = this.endAngle;\n if (Math.abs(endAngle - startAngle) >= Math.PI * 2) {\n return {\n minX: -1,\n maxX: 1,\n minY: -1,\n maxY: 1,\n };\n }\n const xs = [0, Math.cos(startAngle), Math.cos(endAngle)];\n const ys = [0, Math.sin(startAngle), Math.sin(endAngle)];\n\n for (let i = Math.min(startAngle, endAngle); i < Math.max(startAngle, endAngle); i += Math.PI / 18) {\n xs.push(Math.cos(i));\n ys.push(Math.sin(i));\n }\n\n return {\n minX: Math.min(...xs),\n maxX: Math.max(...xs),\n minY: Math.min(...ys),\n maxY: Math.max(...ys),\n };\n }\n}\n","import { CoordinateCtor } from './coord/base';\n\n// 所有的 Coordinate map\nconst COORDINATE_MAP: Record = {};\n\n/**\n * 通过类型获得 coordinate 类\n * @param type\n */\nexport const getCoordinate = (type: string): CoordinateCtor => {\n return COORDINATE_MAP[type.toLowerCase()];\n};\n\n/**\n * 注册 coordinate 类\n * @param type\n * @param ctor\n */\nexport const registerCoordinate = (type: string, ctor: CoordinateCtor): void => {\n // 存储到 map 中\n COORDINATE_MAP[type.toLowerCase()] = ctor;\n};\n\nexport * from './interface';\n","import { IGroup } from '@antv/g-base';\nimport { Event as GraphEvent } from '@antv/g-base';\nimport { LooseObject } from '../types';\n\n/**\n *\n * @param group 分组\n * @param eventName 事件名\n * @param eventObject 事件对象\n */\nexport function propagationDelegate(group: IGroup, eventName: string, eventObject: LooseObject) {\n const event = new GraphEvent(eventName, eventObject);\n event.target = group;\n event.propagationPath.push(group); // 从当前 group 开始触发 delegation\n group.emitDelegation(eventName, event);\n let parent = group.getParent() as IGroup;\n // 执行冒泡\n while (parent) {\n // 委托事件要先触发\n parent.emitDelegation(eventName, event);\n event.propagationPath.push(parent);\n parent = parent.getParent() as IGroup;\n }\n}\n","import Coordinate from './coord/base';\nimport Cartesian from './coord/cartesian';\nimport Helix from './coord/helix';\nimport Polar from './coord/polar';\n\nimport { getCoordinate, registerCoordinate } from './factory';\n\nregisterCoordinate('rect', Cartesian);\nregisterCoordinate('cartesian', Cartesian);\nregisterCoordinate('polar', Polar);\nregisterCoordinate('helix', Helix);\n\nexport { getCoordinate, registerCoordinate, Coordinate };\n\nexport { Point, PolarCfg, CoordinateCfg } from './interface';\n","import { IElement } from '@antv/g-base';\nimport { ext, vec2, vec3 } from '@antv/matrix-util';\nimport { BBox, Point } from '../types';\n\nconst identityMatrix = [1, 0, 0, 0, 1, 0, 0, 0, 1];\nexport function getMatrixByAngle(point: Point, angle: number, matrix = identityMatrix): number[] {\n if (!angle) {\n // 角度为 0 或者 null 时返回 null\n return null;\n }\n const m = ext.transform(matrix, [\n ['t', -point.x, -point.y],\n ['r', angle],\n ['t', point.x, point.y],\n ]);\n return m;\n}\n\nexport function getMatrixByTranslate(point: Point, currentMatrix?: number[]): number[] {\n if (!point.x && !point.y) {\n // 0,0 或者 nan 的情况下返回 null\n return null;\n }\n return ext.transform(currentMatrix || identityMatrix, [['t', point.x, point.y]]);\n}\n\n// 从矩阵获取旋转的角度\nexport function getAngleByMatrix(matrix: [\n number, number, number,\n number, number, number,\n number, number, number\n]): number {\n const xVector: [number, number, number] = [1, 0, 0];\n const out: [ number, number, number ] = [0, 0, 0];\n vec3.transformMat3(out, xVector, matrix);\n return Math.atan2(out[1], out[0]);\n}\n// 矩阵 * 向量\nfunction multiplyVec2(matrix, v) {\n const out: [number, number] = [0, 0];\n vec2.transformMat3(out, v, matrix);\n return out;\n}\n\nexport function applyMatrix2BBox(matrix: number[], bbox: BBox) {\n const topLeft = multiplyVec2(matrix, [bbox.minX, bbox.minY]);\n const topRight = multiplyVec2(matrix, [bbox.maxX, bbox.minY]);\n const bottomLeft = multiplyVec2(matrix, [bbox.minX, bbox.maxY]);\n const bottomRight = multiplyVec2(matrix, [bbox.maxX, bbox.maxY]);\n const minX = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\n const maxX = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\n const minY = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\n const maxY = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\n return {\n x: minX,\n y: minY,\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n };\n}\n\nexport function applyRotate(shape: IElement, rotate: number, x: number, y: number) {\n if (rotate) {\n const matrix = getMatrixByAngle({ x, y }, rotate, shape.getMatrix());\n shape.setMatrix(matrix);\n }\n}\n\nexport function applyTranslate(shape: IElement, x: number, y: number) {\n const translateMatrix = getMatrixByTranslate({ x, y });\n shape.attr('matrix', translateMatrix);\n}\n","import { IElement, IGroup } from '@antv/g-base';\nimport { each, isArray, isNil, isNumber } from '@antv/util';\nimport { BBox, Point, Region } from '../types';\n\nexport function formatPadding(padding: number | number[]): number[] {\n let top = 0;\n let left = 0;\n let right = 0;\n let bottom = 0;\n\n if (isNumber(padding)) {\n top = left = right = bottom = padding;\n } else if (isArray(padding)) {\n top = padding[0];\n right = !isNil(padding[1]) ? padding[1] : padding[0];\n bottom = !isNil(padding[2]) ? padding[2] : padding[0];\n left = !isNil(padding[3]) ? padding[3] : right;\n }\n\n return [top, right, bottom, left];\n}\n\nexport function clearDom(container: HTMLElement) {\n const children = container.childNodes;\n const length = children.length;\n for (let i = length - 1; i >= 0; i--) {\n container.removeChild(children[i]);\n }\n}\n\nexport function hasClass(elements, cName): boolean {\n return !!elements.className.match(new RegExp(`(\\\\s|^)${cName}(\\\\s|$)`));\n}\n\nexport function regionToBBox(region: Region): BBox {\n const { start, end } = region;\n const minX = Math.min(start.x, end.x);\n const minY = Math.min(start.y, end.y);\n const maxX = Math.max(start.x, end.x);\n const maxY = Math.max(start.y, end.y);\n return {\n x: minX,\n y: minY,\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n };\n}\n\nexport function pointsToBBox(points: Point[]): BBox {\n const xs: number[] = points.map((point) => point.x);\n const ys: number[] = points.map((point) => point.y);\n const minX = Math.min(...xs);\n const minY = Math.min(...ys);\n const maxX = Math.max(...xs);\n const maxY = Math.max(...ys);\n return {\n x: minX,\n y: minY,\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n };\n}\n\nexport function createBBox(x: number, y: number, width: number, height: number): BBox {\n const maxX = x + width;\n const maxY = y + height;\n\n return {\n x,\n y,\n width,\n height,\n minX: x,\n minY: y,\n // 非常奇葩的 js 特性\n // Infinity + Infinity = Infinity\n // Infinity - Infinity = NaN\n // fixed https://github.com/antvis/G2Plot/issues/1243\n maxX: isNaN(maxX) ? 0 : maxX,\n maxY: isNaN(maxY) ? 0 : maxY,\n };\n}\n\nexport function getValueByPercent(min: number, max: number, percent: number) {\n return (1 - percent) * min + max * percent;\n}\n\nexport function getCirclePoint(center: Point, radius: number, angle: number) {\n return {\n x: center.x + Math.cos(angle) * radius,\n y: center.y + Math.sin(angle) * radius,\n };\n}\n\nexport function distance(p1: Point, p2: Point): number {\n const dx = p2.x - p1.x;\n const dy = p2.y - p1.y;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\nexport const wait = (interval: number): Promise => {\n return new Promise((resolve) => {\n setTimeout(resolve, interval);\n });\n};\n\n/**\n * 判断两个数值 是否接近\n * - 解决精度问题(由于无法确定精度上限,根据具体场景可传入 精度 参数)\n */\nexport const near = (x: number, y: number, e = Number.EPSILON ** 0.5): boolean =>\n [x, y].includes(Infinity) ? Math.abs(x) === Math.abs(y) : Math.abs(x - y) < e;\n\nexport function intersectBBox(box1: BBox, box2: BBox): BBox {\n const minX = Math.max(box1.minX, box2.minX);\n const minY = Math.max(box1.minY, box2.minY);\n const maxX = Math.min(box1.maxX, box2.maxX);\n const maxY = Math.min(box1.maxY, box2.maxY);\n return createBBox(minX, minY, maxX - minX, maxY - minY);\n}\n\nexport function mergeBBox(box1: BBox, box2: BBox): BBox {\n const minX = Math.min(box1.minX, box2.minX);\n const minY = Math.min(box1.minY, box2.minY);\n const maxX = Math.max(box1.maxX, box2.maxX);\n const maxY = Math.max(box1.maxY, box2.maxY);\n return createBBox(minX, minY, maxX - minX, maxY - minY);\n}\n\nexport function getBBoxWithClip(element: IElement): BBox {\n const clipShape = element.getClip();\n const clipBBox = clipShape && clipShape.getBBox();\n let bbox;\n if (!element.isGroup()) {\n // 如果是普通的图形\n bbox = element.getBBox();\n } else {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n const children = (element as IGroup).getChildren();\n if (children.length > 0) {\n each(children, (child: IElement) => {\n if (child.get('visible')) {\n // 如果分组没有子元素,则直接跳过\n if (child.isGroup() && child.get('children').length === 0) {\n return true;\n }\n const box = getBBoxWithClip(child);\n // 计算 4 个顶点\n const leftTop = child.applyToMatrix([box.minX, box.minY, 1]);\n const leftBottom = child.applyToMatrix([box.minX, box.maxY, 1]);\n const rightTop = child.applyToMatrix([box.maxX, box.minY, 1]);\n const rightBottom = child.applyToMatrix([box.maxX, box.maxY, 1]);\n // 从中取最小的范围\n const boxMinX = Math.min(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0]);\n const boxMaxX = Math.max(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0]);\n const boxMinY = Math.min(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1]);\n const boxMaxY = Math.max(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1]);\n\n if (boxMinX < minX) {\n minX = boxMinX;\n }\n\n if (boxMaxX > maxX) {\n maxX = boxMaxX;\n }\n\n if (boxMinY < minY) {\n minY = boxMinY;\n }\n\n if (boxMaxY > maxY) {\n maxY = boxMaxY;\n }\n }\n });\n } else {\n minX = 0;\n maxX = 0;\n minY = 0;\n maxY = 0;\n }\n bbox = createBBox(minX, minY, maxX - minX, maxY - minY);\n }\n if (clipBBox) {\n return intersectBBox(bbox, clipBBox);\n } else {\n return bbox;\n }\n}\n\nexport function updateClip(element: IElement, newElement: IElement) {\n if (!element.getClip() && !newElement.getClip()) {\n // 两者都没有 clip\n return;\n }\n const newClipShape = newElement.getClip();\n if (!newClipShape) {\n // 新的 element 没有 clip\n element.setClip(null); // 移除 clip\n return;\n }\n const clipCfg = {\n type: newClipShape.get('type'),\n attrs: newClipShape.attr(),\n };\n element.setClip(clipCfg);\n}\n\nexport function toPx(number) {\n return `${number}px`;\n}\n\nexport function getTextPoint(start: Point, end: Point, position: string, offset: number): Point {\n const lineLength = distance(start, end);\n const offsetPercent = offset / lineLength; // 计算间距同线的比例,用于计算最终的位置\n let percent = 0;\n if (position === 'start') {\n percent = 0 - offsetPercent;\n } else if (position === 'end') {\n percent = 1 + offsetPercent;\n }\n return {\n x: getValueByPercent(start.x, end.x, percent),\n y: getValueByPercent(start.y, end.y, percent),\n };\n}\n","import { Base } from '@antv/g-base';\nimport { deepMix, each, hasKey, isObject } from '@antv/util';\nimport { ILocation } from '../interfaces';\nimport { BBox, ComponentCfg, LocationCfg, OffsetPoint } from '../types';\nconst LOCATION_FIELD_MAP = {\n none: [],\n point: ['x', 'y'],\n region: ['start', 'end'],\n points: ['points'],\n circle: ['center', 'radius', 'startAngle', 'endAngle'],\n};\n\nabstract class Component extends Base implements ILocation {\n constructor(cfg: T) {\n super(cfg);\n this.initCfg();\n }\n /**\n * @protected\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n return {\n id: '',\n name: '',\n type: '',\n locationType: 'none',\n offsetX: 0,\n offsetY: 0,\n animate: false,\n capture: true,\n updateAutoRender: false,\n animateOption: {\n appear: null, // 初始入场动画配置\n update: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时发生变更的动画配置\n enter: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时新增元素的入场动画配置\n leave: {\n duration: 350,\n easing: 'easeQuadIn',\n }, // 更新时销毁动画配置\n },\n events: null,\n defaultCfg: {},\n visible: true,\n };\n }\n\n /**\n * 清理组件的内容,一般配合 render 使用\n * @example\n * axis.clear();\n * axis.render();\n */\n public clear() {}\n\n /**\n * 更新组件\n * @param {object} cfg 更新属性\n */\n public update(cfg: Partial) {\n const defaultCfg = this.get('defaultCfg') || {};\n each(cfg, (value, name) => {\n const originCfg = this.get(name);\n let newCfg = value;\n if (originCfg !== value) {\n // 判断两者是否相等,主要是进行 null 的判定\n if (isObject(value) && defaultCfg[name]) {\n // 新设置的属性与默认值进行合并\n newCfg = deepMix({}, defaultCfg[name], value);\n }\n this.set(name, newCfg);\n }\n });\n this.updateInner(cfg);\n this.afterUpdate(cfg);\n }\n // 更新内部\n protected updateInner(cfg: Partial) {\n\n }\n\n protected afterUpdate(cfg: Partial) {\n // 更新时考虑显示、隐藏\n if (hasKey(cfg, 'visible')) {\n if (cfg.visible) {\n this.show();\n } else {\n this.hide();\n }\n }\n // 更新时考虑capture\n if (hasKey(cfg, 'capture')) {\n this.setCapture(cfg.capture);\n }\n }\n\n public abstract getBBox(): BBox;\n\n public getLayoutBBox(): BBox {\n return this.getBBox(); // 默认返回 getBBox,不同的组件内部单独实现\n }\n\n public getLocationType() {\n return this.get('locationType');\n }\n\n public getOffset(): OffsetPoint {\n return {\n offsetX: this.get('offsetX'),\n offsetY: this.get('offsetY'),\n };\n }\n\n // 默认使用 update\n public setOffset(offsetX: number, offsetY: number) {\n this.update({\n offsetX,\n offsetY,\n } as T);\n }\n\n public setLocation(cfg: LocationCfg) {\n const location = { ...cfg } as Partial;\n this.update(location);\n }\n\n // 实现 ILocation 接口的 getLocation\n public getLocation(): LocationCfg {\n const location = {} as LocationCfg;\n const locationType = this.get('locationType');\n const fields = LOCATION_FIELD_MAP[locationType];\n each(fields, (field) => {\n location[field] = this.get(field);\n });\n return location;\n }\n\n public isList(): boolean {\n return false;\n }\n\n public isSlider(): boolean {\n return false;\n }\n\n /**\n * @protected\n * 初始化,用于具体的组件继承\n */\n public init() {}\n\n /**\n * 绘制组件\n */\n public abstract render();\n\n /**\n * 显示\n */\n public abstract show();\n\n public abstract setCapture(capture: boolean);\n\n /**\n * 隐藏\n */\n public abstract hide();\n\n // 将组件默认的配置项设置合并到传入的配置项\n private initCfg() {\n const defaultCfg = this.get('defaultCfg');\n each(defaultCfg, (value, name) => {\n const cfg = this.get(name);\n if (isObject(cfg)) {\n const newCfg = deepMix({}, value, cfg);\n this.set(name, newCfg);\n }\n });\n }\n}\n\nexport default Component;\n","/**\n * @fileoverview 使用 G.Group 的组件\n * @author dxq613@gmail.com\n */\nimport { IElement, IGroup, IShape } from '@antv/g-base';\nimport { difference, each, isNil, keys, mix, pick } from '@antv/util';\nimport { BBox, GroupComponentCfg, LooseObject, Point } from '../types';\nimport { propagationDelegate } from '../util/event';\nimport { applyMatrix2BBox, getMatrixByTranslate } from '../util/matrix';\nimport { getBBoxWithClip, updateClip } from '../util/util';\nimport Component from './component';\ntype Callback = (evt: object) => void;\n\nconst STATUS_UPDATE = 'update_status';\nconst COPY_PROPERTIES = ['visible', 'tip', 'delegateObject']; // 更新对象时需要复制的属性\nconst COPY_PROPERTIES_EXCLUDES = ['container', 'group', 'shapesMap', 'isRegister', 'isUpdating', 'destroyed']; // 更新子组件时排除的属性\n\nexport type GroupComponentCtor<\n C extends GroupComponentCfg = GroupComponentCfg,\n T extends GroupComponent = GroupComponent\n> = new (cfg: C) => T;\n\nabstract class GroupComponent extends Component {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n container: null,\n /**\n * @private\n * 缓存图形的 Map\n */\n shapesMap: {},\n group: null,\n capture: true,\n /**\n * @private 组件或者图形是否允许注册\n * @type {false}\n */\n isRegister: false,\n /**\n * @private 是否正在更新\n * @type {false}\n */\n isUpdating: false,\n /**\n * @private\n * 是否初始状态,一旦 render,update 后,这个状态就变成 false, clear 后恢复\n */\n isInit: true,\n };\n }\n\n public remove() {\n this.clear();\n const group = this.get('group');\n group.remove();\n }\n\n public clear() {\n const group = this.get('group');\n group.clear();\n this.set('shapesMap', {});\n this.clearOffScreenCache();\n this.set('isInit', true);\n }\n\n public getChildComponentById(id: string) {\n const group = this.getElementById(id);\n const inst = group && group.get('component');\n return inst;\n }\n\n public getElementById(id: string) {\n return this.get('shapesMap')[id];\n }\n\n public getElementByLocalId(localId) {\n const id = this.getElementId(localId);\n return this.getElementById(id);\n }\n\n public getElementsByName(name: string) {\n const rst = [];\n each(this.get('shapesMap'), (elem) => {\n if (elem.get('name') === name) {\n rst.push(elem);\n }\n });\n\n return rst;\n }\n\n public getContainer(): IGroup {\n return this.get('container') as IGroup;\n }\n\n public updateInner(cfg: Partial) {\n // this.updateInner();\n // this.set('isUpdating', false);\n this.offScreenRender();\n if (this.get('updateAutoRender')) {\n this.render();\n }\n }\n\n public render() {\n let offScreenGroup = this.get('offScreenGroup');\n if (!offScreenGroup) {\n offScreenGroup = this.offScreenRender();\n }\n const group = this.get('group');\n this.updateElements(offScreenGroup, group);\n this.deleteElements();\n this.applyOffset();\n if (!this.get('eventInitted')) {\n this.initEvent();\n this.set('eventInitted', true);\n }\n this.set('isInit', false);\n }\n\n public show() {\n const group = this.get('group');\n group.show();\n this.set('visible', true);\n }\n\n public hide() {\n const group = this.get('group');\n group.hide();\n this.set('visible', false);\n }\n\n public setCapture(capture) {\n const group = this.get('group');\n group.set('capture', capture);\n this.set('capture', capture);\n }\n\n public destroy() {\n this.removeEvent();\n this.remove();\n super.destroy();\n }\n\n public getBBox(): BBox {\n return this.get('group').getCanvasBBox();\n }\n\n public getLayoutBBox(): BBox {\n const group = this.get('group');\n // 防止被 clear 了,offScreenBBox 不存在\n let bbox = this.getInnerLayoutBBox();\n const matrix = group.getTotalMatrix();\n if (matrix) {\n bbox = applyMatrix2BBox(matrix, bbox);\n }\n return bbox; // 默认返回 getBBox,不同的组件内部单独实现\n }\n\n // 复写 on, off, emit 透传到 group\n public on(evt: string, callback: Callback, once?: boolean): this {\n const group = this.get('group');\n group.on(evt, callback, once);\n return this;\n }\n\n public off(evt?: string, callback?: Callback): this {\n const group = this.get('group');\n group && group.off(evt, callback);\n return this;\n }\n\n public emit(eventName: string, eventObject: LooseObject) {\n const group = this.get('group');\n group.emit(eventName, eventObject);\n }\n\n public init() {\n super.init();\n if (!this.get('group')) {\n this.initGroup();\n }\n this.offScreenRender(); // 绘制离屏 group\n }\n\n // 获取组件内部布局占的包围盒\n protected getInnerLayoutBBox() {\n return this.get('offScreenBBox') || this.get('group').getBBox();\n }\n\n // 抛出委托对象\n protected delegateEmit(eventName: string, eventObject: LooseObject) {\n const group = this.get('group');\n eventObject.target = group;\n group.emit(eventName, eventObject);\n propagationDelegate(group, eventName, eventObject);\n }\n // 创建离屏的 group ,不添加在 canvas 中\n protected createOffScreenGroup() {\n const group = this.get('group');\n const GroupClass = group.getGroupBase(); // 获取分组的构造函数\n const newGroup = new GroupClass({\n delegateObject: this.getDelegateObject(), // 生成委托事件触发时附加的对象\n });\n return newGroup;\n }\n\n // 应用 offset\n protected applyOffset() {\n const offsetX = this.get('offsetX');\n const offsetY = this.get('offsetY');\n this.moveElementTo(this.get('group'), {\n x: offsetX,\n y: offsetY,\n });\n }\n\n protected initGroup() {\n const container = this.get('container');\n this.set(\n 'group',\n container.addGroup({\n id: this.get('id'),\n name: this.get('name'),\n capture: this.get('capture'),\n visible: this.get('visible'),\n isComponent: true,\n component: this,\n delegateObject: this.getDelegateObject(),\n })\n );\n }\n\n // 离屏渲染\n protected offScreenRender() {\n this.clearOffScreenCache();\n const offScreenGroup = this.createOffScreenGroup();\n\n this.renderInner(offScreenGroup);\n this.set('offScreenGroup', offScreenGroup);\n // 包含包围盒的 bbox\n this.set('offScreenBBox', getBBoxWithClip(offScreenGroup));\n return offScreenGroup;\n }\n\n /**\n * @protected\n * 在组件上添加分组,主要解决 isReigeter 的问题\n * @param {IGroup} parent 父元素\n * @param {object} cfg 分组的配置项\n */\n protected addGroup(parent: IGroup, cfg) {\n this.appendDelegateObject(parent, cfg);\n const group = parent.addGroup(cfg);\n if (this.get('isRegister')) {\n this.registerElement(group);\n }\n return group;\n }\n\n /**\n * @protected\n * 在组件上添加图形,主要解决 isReigeter 的问题\n * @param {IGroup} parent 父元素\n * @param {object} cfg 分组的配置项\n */\n protected addShape(parent: IGroup, cfg) {\n this.appendDelegateObject(parent, cfg);\n const shape = parent.addShape(cfg);\n if (this.get('isRegister')) {\n this.registerElement(shape);\n }\n return shape;\n }\n\n /**\n * 在组件上添加子组件\n *\n * @param parent 父元素\n * @param cfg 子组件配置项\n */\n protected addComponent(\n parent: IGroup,\n cfg: Omit & { component: GroupComponentCtor }\n ) {\n const { id, component: Ctor, ...restCfg } = cfg;\n // @ts-ignore\n const inst: CT = new Ctor({\n ...restCfg,\n id,\n container: parent,\n updateAutoRender: this.get('updateAutoRender'),\n });\n inst.init();\n inst.render();\n\n if (this.get('isRegister')) {\n this.registerElement(inst.get('group'));\n }\n\n return inst;\n }\n\n protected initEvent() {}\n\n protected removeEvent() {\n const group = this.get('group');\n group.off();\n }\n\n protected getElementId(localId: string) {\n const id = this.get('id'); // 组件的 Id\n const name = this.get('name'); // 组件的名称\n return `${id}-${name}-${localId}`;\n }\n\n protected registerElement(element) {\n const id = element.get('id');\n this.get('shapesMap')[id] = element;\n }\n\n protected unregisterElement(element) {\n const id = element.get('id');\n delete this.get('shapesMap')[id];\n }\n\n // 移动元素\n protected moveElementTo(element: IElement, point: Point) {\n const matrix = getMatrixByTranslate(point);\n element.attr('matrix', matrix);\n }\n\n /**\n * 内部的渲染\n * @param {IGroup} group 图形分组\n */\n protected abstract renderInner(group: IGroup);\n\n /**\n * 图形元素新出现时的动画,默认图形从透明度 0 到当前透明度\n * @protected\n * @param {string} elmentName 图形元素名称\n * @param {IElement} newElement 新的图形元素\n * @param {object} animateCfg 动画的配置项\n */\n protected addAnimation(elmentName, newElement, animateCfg) {\n // 缓存透明度\n let originOpacity = newElement.attr('opacity');\n if (isNil(originOpacity)) {\n originOpacity = 1;\n }\n newElement.attr('opacity', 0);\n newElement.animate({ opacity: originOpacity }, animateCfg);\n }\n\n /**\n * 图形元素新出现时的动画,默认图形从透明度 0 到当前透明度\n * @protected\n * @param {string} elmentName 图形元素名称\n * @param {IElement} originElement 要删除的图形元素\n * @param {object} animateCfg 动画的配置项\n */\n protected removeAnimation(elementName, originElement, animateCfg) {\n originElement.animate({ opacity: 0 }, animateCfg);\n }\n\n /**\n * 图形元素的更新动画\n * @param {string} elmentName 图形元素名称\n * @param {IElement} originElement 现有的图形元素\n * @param {object} newAttrs 新的图形元素\n * @param {object} animateCfg 动画的配置项\n */\n protected updateAnimation(elementName, originElement, newAttrs, animateCfg) {\n originElement.animate(newAttrs, animateCfg);\n }\n\n // 更新组件的图形\n protected updateElements(newGroup, originGroup) {\n const animate = this.get('animate');\n const animateOption = this.get('animateOption');\n const children = newGroup.getChildren().slice(0); // 创建一个新数组,防止添加到 originGroup 时, children 变动\n let preElement; // 前面已经匹配到的图形元素,用于\n each(children, (element) => {\n const elementId = element.get('id');\n const originElement = this.getElementById(elementId);\n const elementName = element.get('name');\n if (originElement) {\n if (element.get('isComponent')) {\n // 嵌套子组件更新\n const childComponent = element.get('component');\n const origChildComponent: GroupComponent = originElement.get('component');\n const newCfg = pick(childComponent.cfg, difference(keys(childComponent.cfg), COPY_PROPERTIES_EXCLUDES));\n origChildComponent.update(newCfg);\n originElement.set(STATUS_UPDATE, 'update');\n } else {\n const replaceAttrs = this.getReplaceAttrs(originElement, element);\n // 更新\n if (animate && animateOption.update) {\n // 没有动画\n this.updateAnimation(elementName, originElement, replaceAttrs, animateOption.update);\n } else {\n // originElement.attrs = replaceAttrs; // 直接替换\n originElement.attr(replaceAttrs);\n }\n // 如果是分组,则继续执行\n if (element.isGroup()) {\n this.updateElements(element, originElement);\n }\n // 复制属性\n each(COPY_PROPERTIES, (name) => {\n originElement.set(name, element.get(name));\n });\n updateClip(originElement, element);\n\n preElement = originElement;\n // 执行完更新后设置状态位为更新\n originElement.set(STATUS_UPDATE, 'update');\n }\n } else {\n // 没有对应的图形,则插入当前图形\n originGroup.add(element); // 应该在 group 加个 insertAt 的方法\n const siblings = originGroup.getChildren(); // 兄弟节点\n siblings.splice(siblings.length - 1, 1); // 先从数组中移除,然后放到合适的位置\n if (preElement) {\n // 前面已经有更新的图形或者插入的图形,则在这个图形后面插入\n const index = siblings.indexOf(preElement);\n siblings.splice(index + 1, 0, element); // 在已经更新的图形元素后面插入\n } else {\n siblings.unshift(element);\n }\n this.registerElement(element); // 注册节点\n element.set(STATUS_UPDATE, 'add'); // 执行完更新后设置状态位为添加\n if (element.get('isComponent')) {\n // 直接新增子组件container属性,实例不变\n const childComponent = element.get('component');\n childComponent.set('container', originGroup);\n } else if (element.isGroup()) {\n // 如果元素是新增加的元素,则遍历注册所有的子节点\n this.registerNewGroup(element);\n }\n preElement = element;\n if (animate) {\n const animateCfg = this.get('isInit') ? animateOption.appear : animateOption.enter;\n if (animateCfg) {\n this.addAnimation(elementName, element, animateCfg);\n }\n }\n }\n });\n }\n\n protected clearUpdateStatus(group: IGroup) {\n const children = group.getChildren();\n each(children, (el) => {\n el.set(STATUS_UPDATE, null); // 清理掉更新状态\n });\n }\n\n // 清理离屏缓存\n private clearOffScreenCache() {\n const offScreenGroup = this.get('offScreenGroup');\n if (offScreenGroup) {\n // 销毁原先的离线 Group\n offScreenGroup.destroy();\n }\n this.set('offScreenGroup', null);\n this.set('offScreenBBox', null);\n }\n\n // private updateInner() {\n // const group = this.get('group');\n // const newGroup = this.createOffScreenGroup();\n // this.renderInner(newGroup);\n // this.applyOffset();\n // this.updateElements(newGroup, group);\n // this.deleteElements();\n // newGroup.destroy(); // 销毁虚拟分组\n // }\n\n // 获取发生委托时的对象,在事件中抛出\n private getDelegateObject() {\n const name = this.get('name');\n const delegateObject = {\n [name]: this,\n component: this,\n };\n return delegateObject;\n }\n\n // 附加委托信息,用于事件\n private appendDelegateObject(parent: IGroup, cfg) {\n const parentObject = parent.get('delegateObject');\n if (!cfg.delegateObject) {\n cfg.delegateObject = {};\n }\n mix(cfg.delegateObject, parentObject); // 将父元素上的委托信息复制到自身\n }\n\n // 获取需要替换的属性,如果原先图形元素存在,而新图形不存在,则设置 undefined\n private getReplaceAttrs(originElement: IElement, newElement: IElement) {\n const originAttrs = originElement.attr();\n const newAttrs = newElement.attr();\n each(originAttrs, (v, k) => {\n if (newAttrs[k] === undefined) {\n newAttrs[k] = undefined;\n }\n });\n return newAttrs;\n }\n\n private registerNewGroup(group) {\n const children = group.getChildren();\n each(children, (element) => {\n this.registerElement(element); // 注册节点\n element.set(STATUS_UPDATE, 'add'); // 执行完更新后设置状态位为添加\n if (element.isGroup()) {\n this.registerNewGroup(element);\n }\n });\n }\n\n // 移除多余的元素\n private deleteElements() {\n const shapesMap = this.get('shapesMap');\n const deleteArray = [];\n // 遍历获取需要删除的图形元素\n each(shapesMap, (element, id) => {\n if (!element.get(STATUS_UPDATE) || element.destroyed) {\n deleteArray.push([id, element]);\n } else {\n element.set(STATUS_UPDATE, null); // 清理掉更新状态\n }\n });\n const animate = this.get('animate');\n const animateOption = this.get('animateOption');\n // 删除图形元素\n each(deleteArray, (item) => {\n const [id, element] = item;\n if (!element.destroyed) {\n const elementName = element.get('name');\n if (animate && animateOption.leave) {\n // 需要动画结束时移除图形\n const callbackAnimCfg = mix(\n {\n callback: () => {\n this.removeElement(element);\n },\n },\n animateOption.leave\n );\n this.removeAnimation(elementName, element, callbackAnimCfg);\n } else {\n this.removeElement(element);\n }\n }\n delete shapesMap[id]; // 从缓存中移除\n });\n }\n\n private removeElement(element: IShape | IGroup) {\n if (element.get('isGroup')) {\n const component = element.get('component');\n if (component) {\n component.destroy();\n }\n }\n element.remove();\n }\n}\n\nexport default GroupComponent;\n","const ELLIPSIS_CODE = '\\u2026';\n\n/** 获取字符串长度 */\nexport function strLen(str: string) {\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n len += charAtLength(str, i);\n }\n return len;\n}\n\n/** 是否属于ASCII编码范畴 */\nexport function charAtLength(str: string, i: number) {\n if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) {\n return 1;\n } else {\n return 2;\n }\n}\n\n/** 文本省略 */\nexport function ellipsisString(str: string, reseveLength: number, position:string = 'tail') {\n const count = str.length;\n let rst = '';\n if (position === 'tail') {\n for (let i = 0, index = 0; i < reseveLength; ) {\n const charLength = charAtLength(str, index);\n if (i + charLength <= reseveLength) {\n rst += str[index];\n i += charAtLength(str, index);\n index++;\n } else {\n break;\n }\n }\n rst += ELLIPSIS_CODE;\n } else if (position === 'head') {\n for (let i = 0, index = count - 1; i < reseveLength; ) {\n const charLength = charAtLength(str, index);\n if (i + charLength <= reseveLength) {\n rst += str[index];\n i += charAtLength(str, index);\n index--;\n } else {\n break;\n }\n }\n rst = ELLIPSIS_CODE + rst;\n } else {\n let startStr = '';\n let endStr = '';\n for (let i = 0, startIndex = 0, endIndex = count - 1; i < reseveLength; ) {\n const startCodeLen = charAtLength(str, startIndex);\n let hasAdd = false; // 设置标志位,防止头尾都没有附加字符\n if (startCodeLen + i <= reseveLength) {\n startStr += str[startIndex];\n startIndex++;\n i += startCodeLen;\n hasAdd = true;\n }\n\n const endCodeLen = charAtLength(str, endIndex);\n if (endCodeLen + i <= reseveLength) {\n endStr = str[endIndex] + endStr;\n i += endCodeLen;\n endIndex--;\n hasAdd = true;\n }\n if (!hasAdd) {\n // 如果都没有增加字符,说明都不适合则中断\n break;\n }\n }\n rst = startStr + ELLIPSIS_CODE + endStr;\n }\n return rst;\n }\n","import { IElement } from '@antv/g-base';\nimport { each, isNil, getEllipsisText, pick } from '@antv/util';\n\nimport { ellipsisString, strLen } from './text';\n\nconst ELLIPSIS_CODE = '\\u2026';\nconst ELLIPSIS_CODE_LENGTH = 2; // 省略号的长度\n\n/** 大数据量阈值 */\nconst OPTIMIZE_THRESHOLD = 400;\n/**\n * 针对大数据量做优化的 getMaxLabelWidth,做法不是直接去比较每一个 label 的最大宽度\n * 而是先通过比较每个 label 每个的字符串的长度,这里区分了下中英文字符\n * 最终是去字符串最“长”的那个 label 的宽度。\n * @param labels\n */\nfunction getMaxLabelWidthOptimized(labels: IElement[]) {\n const texts: string[] = labels.map((label) => {\n const text = label.attr('text');\n return isNil(text) ? '' : `${text}`;\n });\n let maxLen = 0;\n let maxIdx = 0;\n\n for (let i = 0; i < texts.length; i += 1) {\n let len = 0;\n for (let j = 0; j <= texts[i].length; j += 1) {\n const code = texts[i].charCodeAt(j);\n if (code >= 19968 && code <= 40869) {\n len += 2;\n } else {\n len += 1;\n }\n }\n if (len > maxLen) {\n maxLen = len;\n maxIdx = i;\n }\n }\n\n return labels[maxIdx].getBBox().width;\n}\n\n/** 获取最长的 label */\nexport function getMaxLabelWidth(labels: IElement[]) {\n if (labels.length > OPTIMIZE_THRESHOLD) {\n return getMaxLabelWidthOptimized(labels);\n }\n\n let max = 0;\n each(labels, (label) => {\n const bbox = label.getBBox();\n const width = bbox.width;\n if (max < width) {\n max = width;\n }\n });\n return max;\n}\n\n/** 获取label长度 */\nexport function getLabelLength(isVertical: boolean, label) {\n const bbox = label.getCanvasBBox();\n return isVertical ? bbox.width : bbox.height;\n}\n\n/* label长度是否超过约束值 */\nexport function testLabel(label: IElement, limitLength: number): boolean {\n return label.getBBox().width < limitLength;\n}\n\n/** 处理 text shape 的自动省略 */\nexport function ellipsisLabel(isVertical: boolean, label: IElement, limitLength: number, position: string = 'tail') {\n const text = label.attr('text') ?? ''; // 避免出现null、undefined\n\n if (position === 'tail') {\n // component 里的缩略处理做得很糟糕,文字长度测算完全不准确\n // 这里暂时只对 tail 做处理\n const font = pick(label.attr(), ['fontSize', 'fontFamily', 'fontWeight', 'fontStyle', 'fontVariant']);\n const ellipsisText = getEllipsisText(text, limitLength, font, '…') as string;\n if (text !== ellipsisText) {\n label.attr('text', ellipsisText);\n label.set('tip', text);\n return true;\n }\n label.set('tip', null);\n return false;\n }\n\n const labelLength = getLabelLength(isVertical, label);\n const codeLength = strLen(text);\n let ellipsisFlag = false;\n if (limitLength < labelLength) {\n const reserveLength = Math.floor((limitLength / labelLength) * codeLength) - ELLIPSIS_CODE_LENGTH; // 计算出来的应该保存的长度\n let newText;\n if (reserveLength >= 0) {\n newText = ellipsisString(text, reserveLength, position);\n } else {\n newText = ELLIPSIS_CODE;\n }\n if (newText) {\n label.attr('text', newText);\n ellipsisFlag = true;\n }\n }\n if (ellipsisFlag) {\n label.set('tip', text);\n } else {\n label.set('tip', null);\n }\n return ellipsisFlag;\n}\n","import { IGroup } from '@antv/g-base';\nimport { get } from '@antv/util';\n\nimport { EnhancedTextCfg } from '../types';\nimport { ellipsisLabel } from './label';\nimport { applyRotate, applyTranslate } from './matrix';\nimport { formatPadding } from './util';\n\nexport interface TagCfg extends EnhancedTextCfg {\n /** 组件的 id 标识 */\n id?: string;\n /** 组件的名字 */\n name?: string;\n /**\n * 文本标注位置 x\n */\n x: number;\n /**\n * 文本标注位置 y\n */\n y: number;\n}\n\nexport function renderTag(container: IGroup, tagCfg: TagCfg) {\n const { x, y, content, style, id, name, rotate, maxLength, autoEllipsis, isVertical, ellipsisPosition, background } = tagCfg;\n const tagGroup = container.addGroup({\n id: `${id}-group`,\n name: `${name}-group`,\n attrs: {\n x,\n y,\n }\n });\n\n // Text shape\n const text = tagGroup.addShape({\n type: 'text',\n id,\n name,\n attrs: {\n x: 0,\n y: 0,\n text: content,\n ...style,\n },\n });\n\n // maxLength 应包含 background 中的 padding 值\n const padding = formatPadding(get(background, 'padding', 0));\n if (maxLength && autoEllipsis) {\n const maxTextLength = maxLength - (padding[1] + padding[3]);\n // 超出自动省略\n ellipsisLabel(!isVertical, text, maxTextLength, ellipsisPosition);\n }\n\n if (background) {\n // 渲染文本背景\n const backgroundStyle = get(background, 'style', {});\n const { minX, minY, width, height } = text.getCanvasBBox();\n const tagBg = tagGroup.addShape('rect', {\n id: `${id}-bg`,\n name: `${id}-bg`,\n attrs: {\n x: minX - padding[3],\n y: minY - padding[0],\n width: width + padding[1] + padding[3],\n height: height + padding[0] + padding[2],\n ...backgroundStyle,\n },\n });\n tagBg.toBack();\n }\n\n applyTranslate(tagGroup, x, y);\n applyRotate(tagGroup, rotate, x, y);\n}\n","export default {\n fontFamily: `\n BlinkMacSystemFont, \"Segoe UI\", Roboto,\"Helvetica Neue\",\n Helvetica, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\",\n SimSun, \"sans-serif\"`,\n textColor: '#2C3542',\n activeTextColor: '#333333',\n uncheckedColor: '#D8D8D8',\n lineColor: '#416180',\n regionColor: '#CCD7EB',\n verticalAxisRotate: -Math.PI / 4,\n horizontalAxisRotate: Math.PI / 4,\n\n // descriptionIcon theme\n descriptionIconStroke: '#fff',\n descriptionIconFill: 'rgba(58, 73, 101, .25)',\n};\n","import { IGroup, Point } from '@antv/g-base';\nimport { isNumber, isString } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { LineAnnotationCfg, RegionLocationCfg } from '../types';\nimport { renderTag, TagCfg } from '../util/graphic';\nimport Theme from '../util/theme';\nimport { getValueByPercent } from '../util/util';\n\nclass LineAnnotation extends GroupComponent implements ILocation {\n /**\n * @protected\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'line',\n locationType: 'region',\n start: null,\n end: null,\n style: {},\n text: null,\n defaultCfg: {\n style: {\n fill: Theme.textColor,\n fontSize: 12,\n textAlign: 'center',\n textBaseline: 'bottom',\n fontFamily: Theme.fontFamily,\n },\n text: {\n position: 'center',\n autoRotate: true,\n content: null,\n offsetX: 0,\n offsetY: 0,\n style: {\n stroke: Theme.lineColor,\n lineWidth: 1,\n },\n },\n },\n };\n }\n\n protected renderInner(group: IGroup) {\n this.renderLine(group);\n if (this.get('text')) {\n this.renderLabel(group);\n }\n }\n\n // 绘制线\n private renderLine(group: IGroup) {\n const start = this.get('start');\n const end = this.get('end');\n const style = this.get('style');\n this.addShape(group, {\n type: 'line',\n id: this.getElementId('line'),\n name: 'annotation-line',\n attrs: {\n x1: start.x,\n y1: start.y,\n x2: end.x,\n y2: end.y,\n ...style,\n },\n });\n }\n\n // 获取 label 的位置\n private getLabelPoint(start: Point, end: Point, position: string) {\n let percent;\n if (position === 'start') {\n percent = 0;\n } else if (position === 'center') {\n percent = 0.5;\n } else if (isString(position) && position.indexOf('%') !== -1) {\n percent = parseInt(position, 10) / 100;\n } else if (isNumber(position)) {\n percent = position;\n } else {\n percent = 1;\n }\n\n if (percent > 1 || percent < 0) {\n percent = 1;\n }\n\n return {\n x: getValueByPercent(start.x, end.x, percent),\n y: getValueByPercent(start.y, end.y, percent),\n };\n }\n\n // 绘制 label\n private renderLabel(group: IGroup) {\n const text = this.get('text');\n const start = this.get('start');\n const end = this.get('end');\n const { position, content, style, offsetX, offsetY, autoRotate,\n maxLength, autoEllipsis, ellipsisPosition, background, isVertical = false } = text;\n const point = this.getLabelPoint(start, end, position);\n const x = point.x + offsetX;\n const y = point.y + offsetY;\n\n const cfg: TagCfg = {\n id: this.getElementId('line-text'),\n name: 'annotation-line-text',\n x,\n y,\n content,\n style,\n maxLength,\n autoEllipsis,\n ellipsisPosition,\n background,\n isVertical,\n };\n\n // 如果自动旋转\n if (autoRotate) {\n const vector = [end.x - start.x, end.y - start.y];\n cfg.rotate = Math.atan2(vector[1], vector[0]);\n }\n\n renderTag(group, cfg);\n }\n}\n\nexport default LineAnnotation;\n","import { IGroup } from '@antv/g-base';\n\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { PointLocationCfg, TextAnnotationCfg } from '../types';\nimport { renderTag } from '../util/graphic';\nimport { applyRotate, applyTranslate } from '../util/matrix';\nimport Theme from '../util/theme';\n\nclass TextAnnotation extends GroupComponent implements ILocation {\n /**\n * @protected\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'text',\n locationType: 'point',\n x: 0,\n y: 0,\n content: '',\n rotate: null,\n style: {},\n background: null,\n maxLength: null,\n autoEllipsis: true,\n isVertical: false,\n ellipsisPosition: 'tail',\n defaultCfg: {\n style: {\n fill: Theme.textColor,\n fontSize: 12,\n textAlign: 'center',\n textBaseline: 'middle',\n fontFamily: Theme.fontFamily,\n },\n },\n };\n }\n\n // 复写 setLocation 方法,不需要重新创建 text\n public setLocation(location: PointLocationCfg) {\n this.set('x', location.x);\n this.set('y', location.y);\n this.resetLocation();\n }\n\n protected renderInner(group: IGroup) {\n const { x, y } = this.getLocation();\n const content = this.get('content');\n const style = this.get('style');\n const id = this.getElementId('text');\n const name = `${this.get('name')}-text`;\n const maxLength = this.get('maxLength');\n const autoEllipsis = this.get('autoEllipsis');\n const isVertical = this.get('isVertical');\n const ellipsisPosition = this.get('ellipsisPosition');\n const background = this.get('background');\n const rotate = this.get('rotate');\n\n const cfg = {\n id,\n name,\n x,\n y,\n content,\n style,\n maxLength,\n autoEllipsis,\n isVertical,\n ellipsisPosition,\n background,\n rotate,\n };\n\n renderTag(group, cfg);\n }\n\n private resetLocation() {\n const textGroup = this.getElementByLocalId('text-group');\n if (textGroup) {\n const {x, y} = this.getLocation();\n const rotate = this.get('rotate')\n applyTranslate(textGroup, x, y);\n applyRotate(textGroup, rotate, x, y);\n }\n }\n}\n\nexport default TextAnnotation;\n","import { IGroup } from '@antv/g-base';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { ArcAnnotationCfg, CircleLocationCfg } from '../types';\nimport { getCirclePoint } from '../util/util';\n\nclass ArcAnnotation extends GroupComponent implements ILocation {\n /**\n * @protected\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'arc',\n locationType: 'circle',\n center: null,\n radius: 100,\n startAngle: -Math.PI / 2,\n endAngle: (Math.PI * 3) / 2,\n style: {\n stroke: '#999',\n lineWidth: 1,\n },\n };\n }\n\n protected renderInner(group: IGroup) {\n this.renderArc(group);\n }\n\n private getArcPath() {\n const { center, radius, startAngle, endAngle } = this.getLocation();\n const startPoint = getCirclePoint(center, radius, startAngle);\n const endPoint = getCirclePoint(center, radius, endAngle);\n const largeFlag = endAngle - startAngle > Math.PI ? 1 : 0;\n\n const path = [['M', startPoint.x, startPoint.y]];\n if (endAngle - startAngle === Math.PI * 2) {\n // 整个圆是分割成两个圆\n const middlePoint = getCirclePoint(center, radius, startAngle + Math.PI);\n path.push(['A', radius, radius, 0, largeFlag, 1, middlePoint.x, middlePoint.y]);\n path.push(['A', radius, radius, 0, largeFlag, 1, endPoint.x, endPoint.y]);\n } else {\n path.push(['A', radius, radius, 0, largeFlag, 1, endPoint.x, endPoint.y]);\n }\n return path;\n }\n\n // 绘制 arc\n private renderArc(group: IGroup) {\n // 也可以 通过 get('center') 类似的方式逐个获取\n const path = this.getArcPath();\n const style = this.get('style');\n this.addShape(group, {\n type: 'path',\n id: this.getElementId('arc'),\n name: 'annotation-arc',\n attrs: {\n path,\n ...style,\n },\n });\n }\n}\n\nexport default ArcAnnotation;\n","import { IGroup } from '@antv/g-base';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { RegionAnnotationCfg, RegionLocationCfg } from '../types';\nimport Theme from '../util/theme';\nimport { regionToBBox } from '../util/util';\n\nclass RegionAnnotation extends GroupComponent implements ILocation {\n /**\n * @protected\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'region',\n locationType: 'region',\n start: null,\n end: null,\n style: {},\n defaultCfg: {\n style: {\n lineWidth: 0,\n fill: Theme.regionColor,\n opacity: 0.4,\n },\n },\n };\n }\n\n protected renderInner(group: IGroup) {\n this.renderRegion(group);\n }\n\n private renderRegion(group: IGroup) {\n const start = this.get('start');\n const end = this.get('end');\n const style = this.get('style');\n const bbox = regionToBBox({ start, end });\n this.addShape(group, {\n type: 'rect',\n id: this.getElementId('region'),\n name: 'annotation-region',\n attrs: {\n x: bbox.x,\n y: bbox.y,\n width: bbox.width,\n height: bbox.height,\n ...style,\n },\n });\n }\n}\n\nexport default RegionAnnotation;\n","import { IGroup } from '@antv/g-base';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { ImageAnnotationCfg, RegionLocationCfg } from '../types';\nimport { regionToBBox } from '../util/util';\n\nclass ImageAnnotation extends GroupComponent implements ILocation {\n /**\n * @protected\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'image',\n locationType: 'region',\n start: null,\n end: null,\n src: null,\n style: {},\n };\n }\n\n public renderInner(group: IGroup) {\n this.renderImage(group);\n }\n\n private getImageAttrs() {\n const start = this.get('start');\n const end = this.get('end');\n const style = this.get('style');\n const bbox = regionToBBox({ start, end });\n const src = this.get('src');\n return {\n x: bbox.x,\n y: bbox.y,\n img: src,\n width: bbox.width,\n height: bbox.height,\n ...style,\n };\n }\n\n // 绘制图片\n private renderImage(group: IGroup) {\n this.addShape(group, {\n type: 'image',\n id: this.getElementId('image'),\n name: 'annotation-image',\n attrs: this.getImageAttrs(),\n });\n }\n}\n\nexport default ImageAnnotation;\n","import { IGroup } from '@antv/g-base';\nimport { get } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { DataMarkerAnnotationCfg, PointLocationCfg } from '../types';\nimport { renderTag } from '../util/graphic';\nimport { applyTranslate } from '../util/matrix';\nimport Theme from '../util/theme';\n\nclass DataMarkerAnnotation extends GroupComponent implements ILocation {\n /**\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'dataMarker',\n locationType: 'point',\n x: 0,\n y: 0,\n point: {},\n line: {},\n text: {},\n direction: 'upward',\n autoAdjust: true,\n coordinateBBox: null,\n defaultCfg: {\n point: {\n display: true,\n style: {\n r: 3,\n fill: '#FFFFFF',\n stroke: '#1890FF',\n lineWidth: 2,\n },\n },\n line: {\n display: true,\n length: 20,\n style: {\n stroke: Theme.lineColor,\n lineWidth: 1,\n },\n },\n text: {\n content: '',\n display: true,\n style: {\n fill: Theme.textColor,\n opacity: 0.65,\n fontSize: 12,\n textAlign: 'start',\n fontFamily: Theme.fontFamily,\n },\n },\n },\n };\n }\n\n protected renderInner(group: IGroup) {\n if (get(this.get('line'), 'display')) {\n this.renderLine(group);\n }\n if (get(this.get('text'), 'display')) {\n this.renderText(group);\n }\n if (get(this.get('point'), 'display')) {\n this.renderPoint(group);\n }\n\n if (this.get('autoAdjust')) {\n this.autoAdjust(group);\n }\n }\n\n protected applyOffset() {\n this.moveElementTo(this.get('group'), {\n x: this.get('x') + this.get('offsetX'),\n y: this.get('y') + this.get('offsetY'),\n });\n }\n\n private renderPoint(group: IGroup) {\n const { point } = this.getShapeAttrs();\n\n this.addShape(group, {\n type: 'circle',\n id: this.getElementId('point'),\n name: 'annotation-point',\n attrs: point,\n });\n }\n\n private renderLine(group: IGroup) {\n const { line } = this.getShapeAttrs();\n\n this.addShape(group, {\n type: 'path',\n id: this.getElementId('line'),\n name: 'annotation-line',\n attrs: line,\n });\n }\n\n private renderText(group: IGroup) {\n const { text: textAttrs } = this.getShapeAttrs();\n\n const { x, y, text, ...style } = textAttrs;\n const { background, maxLength, autoEllipsis, isVertival, ellipsisPosition } = this.get('text');\n const tagCfg = {\n x,\n y,\n id: this.getElementId('text'),\n name: 'annotation-text',\n content: text,\n style,\n background,\n maxLength,\n autoEllipsis,\n isVertival,\n ellipsisPosition,\n };\n\n renderTag(group, tagCfg);\n }\n\n private autoAdjust(group: IGroup) {\n const direction: string = this.get('direction');\n const x: number = this.get('x');\n const y: number = this.get('y');\n const lineLength: number = get(this.get('line'), 'length', 0);\n const coordinateBBox = this.get('coordinateBBox');\n const { minX, maxX, minY, maxY } = group.getBBox();\n\n const textGroup = group.findById(this.getElementId('text-group'));\n const textShape = group.findById(this.getElementId('text'));\n const lineShape = group.findById(this.getElementId('line'));\n\n if (!coordinateBBox) {\n return;\n }\n\n if (textGroup) {\n let translateX = textGroup.attr('x'), translateY = textGroup.attr('y');\n let { width, height } = textShape.getCanvasBBox();\n let xFactor = 0, yFactor = 0;\n if (x + minX <= coordinateBBox.minX) {\n // 左侧超出\n if (direction === 'leftward') {\n xFactor = 1;\n } else {\n const overflow = coordinateBBox.minX - (x + minX);\n translateX = textGroup.attr('x') + overflow;\n }\n } else if (x + maxX >= coordinateBBox.maxX) {\n // 右侧超出\n if (direction === 'rightward') {\n xFactor = -1;\n } else {\n const overflow = x + maxX - coordinateBBox.maxX;\n translateX = textGroup.attr('x') - overflow;\n }\n }\n if (!!xFactor) {\n if (lineShape) {\n lineShape.attr('path', [\n ['M', 0, 0],\n ['L', lineLength * xFactor, 0],\n ]);\n }\n translateX = (lineLength + 2 + width) * xFactor;\n }\n if (y + minY <= coordinateBBox.minY) {\n // 上方超出\n if (direction === 'upward') {\n yFactor = 1;\n } else {\n const overflow = coordinateBBox.minY - (y + minY);\n translateY = textGroup.attr('y') + overflow;\n }\n } else if (y + maxY >= coordinateBBox.maxY) {\n // 下方超出\n if (direction === 'downward') {\n yFactor = -1;\n } else {\n const overflow = y + maxY - coordinateBBox.maxY;\n translateY = textGroup.attr('y') - overflow;\n }\n }\n if (!!yFactor) {\n if (lineShape) {\n lineShape.attr('path', [\n ['M', 0, 0],\n ['L', 0, lineLength * yFactor],\n ]);\n }\n translateY = (lineLength + 2 + height) * yFactor;\n }\n if (translateX !== textGroup.attr('x') || translateY !== textGroup.attr('y'))\n applyTranslate(textGroup, translateX, translateY);\n }\n }\n\n private getShapeAttrs() {\n const lineDisplay = get(this.get('line'), 'display');\n const pointStyle = get(this.get('point'), 'style', {});\n const lineStyle = get(this.get('line'), 'style', {});\n const textStyle = get(this.get('text'), 'style', {});\n const direction = this.get('direction');\n const lineLength = lineDisplay ? get(this.get('line'), 'length', 0) : 0;\n let xFactor = 0, yFactor = 0;\n let textBaseline = 'top',\n textAlign = 'start';\n switch (direction) {\n case 'upward':\n yFactor = -1;\n textBaseline = 'bottom';\n break;\n case 'downward':\n yFactor = 1;\n textBaseline = 'top';\n break;\n case 'leftward':\n xFactor = -1;\n textAlign = 'end';\n break;\n case 'rightward':\n xFactor = 1;\n textAlign = 'start';\n break;\n }\n return {\n point: {\n x: 0,\n y: 0,\n ...pointStyle,\n },\n line: {\n path: [\n ['M', 0, 0],\n ['L', lineLength * xFactor, lineLength * yFactor],\n ],\n ...lineStyle,\n },\n text: {\n x: (lineLength + 2) * xFactor,\n y: (lineLength + 2) * yFactor,\n text: get(this.get('text'), 'content', ''),\n textBaseline,\n textAlign,\n ...textStyle,\n },\n };\n }\n}\n\nexport default DataMarkerAnnotation;\n","import { IGroup } from '@antv/g-base';\nimport { get } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { DataRegionAnnotationCfg, Point, PointsLocationCfg } from '../types';\nimport Theme from '../util/theme';\nimport { pointsToBBox } from '../util/util';\nimport { renderTag } from '../util/graphic';\n\nclass DataRegionAnnotation extends GroupComponent implements ILocation {\n /**\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'dataRegion',\n locationType: 'points',\n points: [],\n lineLength: 0,\n region: {},\n text: {},\n defaultCfg: {\n region: {\n style: {\n lineWidth: 0,\n fill: Theme.regionColor,\n opacity: 0.4,\n },\n },\n text: {\n content: '',\n style: {\n textAlign: 'center',\n textBaseline: 'bottom',\n fontSize: 12,\n fill: Theme.textColor,\n fontFamily: Theme.fontFamily,\n },\n },\n },\n };\n }\n\n protected renderInner(group: IGroup) {\n const regionStyle = get(this.get('region'), 'style', {});\n const textStyle = get(this.get('text'), 'style', {});\n const lineLength = this.get('lineLength') || 0;\n const points: Point[] = this.get('points');\n\n if (!points.length) {\n return;\n }\n const bbox = pointsToBBox(points);\n\n // render region\n const path = [];\n path.push(['M', points[0].x, bbox.minY - lineLength]);\n points.forEach((point) => {\n path.push(['L', point.x, point.y]);\n });\n path.push(['L', points[points.length - 1].x, points[points.length - 1].y - lineLength]);\n this.addShape(group, {\n type: 'path',\n id: this.getElementId('region'),\n name: 'annotation-region',\n attrs: {\n path,\n ...regionStyle,\n },\n });\n\n // render text\n const textCfg = {\n id: this.getElementId('text'),\n name: 'annotation-text',\n x: (bbox.minX + bbox.maxX) / 2,\n y: bbox.minY - lineLength,\n ...this.get('text'),\n };\n\n renderTag(group, textCfg);\n }\n}\n\nexport default DataRegionAnnotation;\n","import { IGroup, IShape, Point, ShapeAttrs } from '@antv/g-base';\nimport { clone, each } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { RegionFilterAnnotationCfg, RegionLocationCfg } from '../types';\nimport { regionToBBox } from '../util/util';\n\nclass RegionFilterAnnotation extends GroupComponent implements ILocation {\n /**\n * 默认的配置项\n * @returns {object} 默认的配置项\n */\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'regionFilter',\n locationType: 'region',\n start: null,\n end: null,\n color: null,\n shape: [],\n };\n }\n\n protected renderInner(group: IGroup) {\n const start: Point = this.get('start');\n const end: Point = this.get('end');\n\n // 1. add region layer\n const layer: IGroup = this.addGroup(group, {\n id: this.getElementId('region-filter'),\n capture: false,\n });\n\n // 2. clone shape & color it\n each(this.get('shapes'), (shape: IShape, shapeIdx: number) => {\n const type = shape.get('type');\n const attrs = clone(shape.attr());\n this.adjustShapeAttrs(attrs);\n this.addShape(layer, {\n id: this.getElementId(`shape-${type}-${shapeIdx}`),\n capture: false,\n type,\n attrs,\n });\n });\n\n // 3. clip\n const clipBBox = regionToBBox({ start, end });\n layer.setClip({\n type: 'rect',\n attrs: {\n x: clipBBox.minX,\n y: clipBBox.minY,\n width: clipBBox.width,\n height: clipBBox.height,\n },\n });\n }\n\n private adjustShapeAttrs(attr: ShapeAttrs) {\n const color = this.get('color');\n if (attr.fill) {\n attr.fill = attr.fillStyle = color;\n }\n attr.stroke = attr.strokeStyle = color;\n }\n}\n\nexport default RegionFilterAnnotation;\n","import { IGroup } from '@antv/g-base';\nimport { isFunction, noop } from '@antv/util';\n\nimport GroupComponent from '../abstract/group-component';\nimport { ShapeAnnotationCfg } from '../types';\n\nexport default class ShapeAnnotation extends GroupComponent {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'shape',\n draw: noop,\n };\n }\n\n protected renderInner(group: IGroup) {\n const render = this.get('render');\n if (isFunction(render)) {\n render(group);\n }\n }\n}\n","/**\n * 获取样式\n * @param {Object} dom DOM节点\n * @param {String} name 样式名\n * @param {Any} defaultValue 默认值\n * @return {String} 属性值\n */\nexport default function getStyle(dom: HTMLElement, name: string, defaultValue?: any) {\n let v;\n try {\n v = window.getComputedStyle ?\n window.getComputedStyle(dom, null)[name] :\n dom.style[name]; // 一般不会走到这个逻辑,dom.style 获取的是标签 style 属性,也不准确\n } catch (e) {\n // do nothing\n } finally {\n v = v === undefined ? defaultValue : v;\n }\n return v;\n}\n","\nimport getStyle from './get-style';\nimport getWidth from './get-width';\n\nexport default function getOuterWidth(el: HTMLElement, defaultValue?: any): number {\n const width = getWidth(el, defaultValue);\n const bLeft = parseFloat(getStyle(el, 'borderLeftWidth')) || 0;\n const pLeft = parseFloat(getStyle(el, 'paddingLeft')) || 0;\n const pRight = parseFloat(getStyle(el, 'paddingRight')) || 0;\n const bRight = parseFloat(getStyle(el, 'borderRightWidth')) || 0;\n const mRight = parseFloat(getStyle(el, 'marginRight')) || 0;\n const mLeft = parseFloat(getStyle(el, 'marginLeft')) || 0;\n return width + bLeft + bRight + pLeft + pRight + mLeft + mRight;\n}\n","import getStyle from './get-style';\n\nexport default function getHeight(el: HTMLElement, defaultValue?: any): number {\n let width = getStyle(el, 'width', defaultValue);\n if (width === 'auto') {\n width = el.offsetWidth;\n }\n return parseFloat(width);\n}\n","\nimport getStyle from './get-style';\nimport getHeight from './get-height';\n\nexport default function getOuterHeight(el: HTMLElement, defaultValue?: any): number {\n const height = getHeight(el, defaultValue);\n const bTop = parseFloat(getStyle(el, 'borderTopWidth')) || 0;\n const pTop = parseFloat(getStyle(el, 'paddingTop')) || 0;\n const pBottom = parseFloat(getStyle(el, 'paddingBottom')) || 0;\n const bBottom = parseFloat(getStyle(el, 'borderBottomWidth')) || 0;\n const mTop = parseFloat(getStyle(el, 'marginTop')) || 0;\n const mBottom = parseFloat(getStyle(el, 'marginBottom')) || 0;\n return height + bTop + bBottom + pTop + pBottom + mTop + mBottom;\n}\n","import getStyle from './get-style';\n\nexport default function getHeight(el: HTMLElement, defaultValue?: any): number {\n let height = getStyle(el, 'height', defaultValue);\n if (height === 'auto') {\n height = el.offsetHeight;\n }\n return parseFloat(height);\n}\n","import { createDom, modifyCSS } from '@antv/dom-util';\nimport { isNil, isString, deepMix, each, hasKey } from '@antv/util';\nimport { BBox, ComponentCfg, HtmlComponentCfg } from '../types';\nimport { clearDom, createBBox, hasClass } from '../util/util';\nimport Component from './component';\n\nabstract class HtmlComponent extends Component {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n container: null,\n containerTpl: '
',\n updateAutoRender: true,\n containerClassName: '',\n parent: null,\n };\n }\n\n public getContainer(): HTMLElement {\n return this.get('container') as HTMLElement;\n }\n\n /**\n * 显示组件\n */\n public show() {\n const container = this.get('container');\n container.style.display = '';\n this.set('visible', true);\n }\n /**\n * 隐藏组件\n */\n public hide() {\n const container = this.get('container');\n container.style.display = 'none';\n this.set('visible', false);\n }\n /**\n * 是否允许捕捉事件\n * @param capture 事件捕捉\n */\n public setCapture(capture) {\n const container = this.getContainer();\n const value = capture ? 'auto' : 'none';\n container.style.pointerEvents = value;\n this.set('capture', capture);\n }\n public getBBox(): BBox {\n const container = this.getContainer();\n const x = parseFloat(container.style.left) || 0;\n const y = parseFloat(container.style.top) || 0;\n return createBBox(x, y, container.clientWidth, container.clientHeight);\n }\n\n public clear() {\n const container = this.get('container');\n clearDom(container);\n }\n\n public destroy() {\n this.removeEvent();\n this.removeDom();\n super.destroy();\n }\n\n /**\n * 复写 init,主要是初始化 DOM 和事件\n */\n public init() {\n super.init();\n this.initContainer();\n this.initDom();\n this.resetStyles(); // 初始化样式\n this.applyStyles(); // 应用样式\n this.initEvent();\n this.initCapture();\n this.initVisible();\n }\n\n protected initCapture() {\n this.setCapture(this.get('capture'));\n }\n protected initVisible() {\n if (!this.get('visible')) {\n // 设置初始显示状态\n this.hide();\n } else {\n this.show();\n }\n }\n\n protected initDom() {\n\n }\n\n protected initContainer() {\n let container = this.get('container');\n if (isNil(container)) {\n // 未指定 container 则创建\n container = this.createDom();\n let parent = this.get('parent');\n if (isString(parent)) {\n parent = document.getElementById(parent);\n this.set('parent', parent);\n }\n parent.appendChild(container);\n if (this.get('containerId')) {\n container.setAttribute('id', this.get('containerId'));\n }\n this.set('container', container);\n } else if (isString(container)) {\n // 用户传入的 id, 作为 container\n container = document.getElementById(container);\n this.set('container', container);\n } // else container 是 DOM\n if (!this.get('parent')) {\n this.set('parent', container.parentNode);\n }\n }\n\n // 样式需要进行合并,不能单纯的替换,否则使用非常不方便\n protected resetStyles() {\n let style = this.get('domStyles');\n const defaultStyles = this.get('defaultStyles');\n if (!style) {\n style = defaultStyles;\n } else {\n style = deepMix({}, defaultStyles, style);\n }\n this.set('domStyles', style);\n }\n // 应用所有的样式\n protected applyStyles() {\n const domStyles = this.get('domStyles');\n if (!domStyles) {\n return;\n }\n const container = this.getContainer();\n this.applyChildrenStyles(container, domStyles);\n const containerClassName = this.get('containerClassName');\n if (containerClassName && hasClass(container, containerClassName)) {\n const containerCss = domStyles[containerClassName];\n modifyCSS(container, containerCss);\n }\n }\n\n protected applyChildrenStyles(element, styles) {\n each(styles, (style, name) => {\n const elements = element.getElementsByClassName(name);\n each(elements, (el) => {\n modifyCSS(el, style);\n });\n });\n }\n // 应用到单个 DOM\n protected applyStyle(cssName, dom) {\n const domStyles = this.get('domStyles');\n modifyCSS(dom, domStyles[cssName]);\n }\n\n /**\n * @protected\n */\n protected createDom() {\n const containerTpl = this.get('containerTpl');\n return createDom(containerTpl);\n }\n\n /**\n * @protected\n * 初始化事件\n */\n protected initEvent() { }\n\n /**\n * @protected\n * 清理 DOM\n */\n protected removeDom() {\n const container = this.get('container');\n // 节点不一定有parentNode\n container && container.parentNode && container.parentNode.removeChild(container);\n }\n\n /**\n * @protected\n * 清理事件\n */\n protected removeEvent() { }\n\n protected updateInner(cfg) {\n // 更新样式\n if (hasKey(cfg, 'domStyles')) {\n this.resetStyles();\n this.applyStyles();\n }\n // 只要属性发生变化,都调整一些位置\n this.resetPosition();\n }\n protected resetPosition() { };\n}\n\nexport default HtmlComponent;\n","import { createDom, getOuterHeight, getOuterWidth, modifyCSS } from '@antv/dom-util';\nimport { isElement, isFunction, isNumber, isString } from '@antv/util';\nimport HtmlComponent from '../abstract/html-component';\nimport { ILocation } from '../interfaces';\nimport { HtmlAnnotationCfg, PointLocationCfg } from '../types';\nimport { clearDom } from '../util/util';\n\nexport default class HtmlAnnotation extends HtmlComponent implements ILocation {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'annotation',\n type: 'html',\n locationType: 'point',\n x: 0,\n y: 0,\n containerTpl: `
`,\n alignX: 'left',\n alignY: 'top',\n html: '',\n zIndex: 7,\n };\n }\n\n public render() {\n const container = this.getContainer();\n const html = this.get('html');\n\n clearDom(container);\n\n const rst: HTMLElement | string = isFunction(html) ? html(container) : html;\n\n if (isElement(rst)) {\n container.appendChild(rst as HTMLElement);\n } else if (isString(rst) || isNumber(rst)) {\n const dom = createDom(`${rst}` as string);\n if (dom) {\n container.appendChild(dom);\n }\n }\n\n this.resetPosition();\n }\n\n protected resetPosition() {\n const container = this.getContainer();\n const { x, y } = this.getLocation();\n const alignX = this.get('alignX');\n const alignY = this.get('alignY');\n const offsetX = this.get('offsetX');\n const offsetY = this.get('offsetY');\n const domWidth = getOuterWidth(container);\n const domHeight = getOuterHeight(container);\n\n const position = {\n x, // alignX left\n y, // alignY top\n };\n\n if (alignX === 'middle') {\n position.x -= Math.round(domWidth / 2);\n } else if (alignX === 'right') {\n position.x -= Math.round(domWidth);\n }\n if (alignY === 'middle') {\n position.y -= Math.round(domHeight / 2);\n } else if (alignY === 'bottom') {\n position.y -= Math.round(domHeight);\n }\n if (offsetX) {\n position.x += offsetX;\n }\n if (offsetY) {\n position.y += offsetY;\n }\n\n modifyCSS(container, {\n position: 'absolute',\n left: `${position.x}px`,\n top: `${position.y}px`,\n zIndex: this.get('zIndex'),\n });\n }\n}\n","import { each, mix } from '@antv/util';\nimport { ListItem } from '../types';\n\n// 获取多个状态量的合并值\nexport function getStatesStyle(item: ListItem, elementName: string, stateStyles: object) {\n const styleName = `${elementName}Style`; // activeStyle\n let styles = null;\n each(stateStyles, (v, state) => {\n if (item[state] && v[styleName]) {\n if (!styles) {\n styles = {};\n }\n mix(styles, v[styleName]); // 合并样式\n }\n });\n return styles;\n}\n","import { IGroup, IShape } from '@antv/g-base';\nimport { ext } from '@antv/matrix-util';\nimport { each, filter, get, isFunction, isNil, isNumberEqual, mix, size, isArray } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { IList } from '../interfaces';\nimport { AxisBaseCfg, ListItem, OptimizeCfg, Point } from '../types';\nimport { getMatrixByAngle } from '../util/matrix';\nimport { getStatesStyle } from '../util/state';\nimport Theme from '../util/theme';\n\nabstract class AxisBase extends GroupComponent implements IList {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'axis',\n ticks: [],\n line: {},\n tickLine: {},\n subTickLine: null,\n title: null,\n /**\n * 文本标签的配置项\n */\n label: {},\n /**\n * 垂直于坐标轴方向的因子,决定文本、title、tickLine 在坐标轴的哪一侧\n */\n verticalFactor: 1,\n // 垂直方向限制的长度,对文本自适应有很大影响\n verticalLimitLength: null,\n overlapOrder: ['autoRotate', 'autoEllipsis', 'autoHide'],\n tickStates: {},\n optimize: {},\n defaultCfg: {\n line: {\n // @type {Attrs} 坐标轴线的图形属性,如果设置成null,则不显示轴线\n style: {\n lineWidth: 1,\n stroke: Theme.lineColor,\n },\n },\n tickLine: {\n // @type {Attrs} 标注坐标线的图形属性\n style: {\n lineWidth: 1,\n stroke: Theme.lineColor,\n },\n alignTick: true, // 是否同 tick 对齐\n length: 5,\n displayWithLabel: true,\n },\n subTickLine: {\n // @type {Attrs} 标注坐标线的图形属性\n style: {\n lineWidth: 1,\n stroke: Theme.lineColor,\n },\n count: 4, // 子刻度线的数量,将两个刻度线划分成 5 份\n length: 2,\n },\n label: {\n autoRotate: true,\n autoHide: false,\n autoEllipsis: false,\n style: {\n fontSize: 12,\n fill: Theme.textColor,\n fontFamily: Theme.fontFamily,\n fontWeight: 'normal',\n },\n offset: 10,\n offsetX: 0,\n offsetY: 0,\n },\n title: {\n autoRotate: true,\n spacing: 5,\n position: 'center', // start, center, end\n style: {\n fontSize: 12,\n fill: Theme.textColor,\n textBaseline: 'middle',\n fontFamily: Theme.fontFamily,\n textAlign: 'center',\n },\n iconStyle: {\n fill: Theme.descriptionIconFill,\n stroke: Theme.descriptionIconStroke,\n },\n description: ''\n },\n tickStates: {\n active: {\n labelStyle: {\n fontWeight: 500,\n },\n tickLineStyle: {\n lineWidth: 2,\n },\n },\n inactive: {\n labelStyle: {\n fill: Theme.uncheckedColor,\n },\n },\n },\n // 针对大数据量进行优化配置\n optimize: {\n enable: true,\n threshold: 400,\n },\n },\n theme: {},\n };\n }\n\n /**\n * 绘制组件\n */\n public renderInner(group: IGroup) {\n if (this.get('line')) {\n this.drawLine(group);\n }\n // drawTicks 包括 drawLabels 和 drawTickLines\n this.drawTicks(group);\n if (this.get('title')) {\n this.drawTitle(group);\n }\n }\n\n // 实现 IList 接口\n public isList(): boolean {\n return true;\n }\n\n /**\n * 获取图例项\n * @return {ListItem[]} 列表项集合\n */\n public getItems(): ListItem[] {\n return this.get('ticks');\n }\n\n /**\n * 设置列表项\n * @param {ListItem[]} items 列表项集合\n */\n public setItems(items: ListItem[]) {\n this.update({\n ticks: items,\n } as Partial);\n }\n\n /**\n * 更新列表项\n * @param {ListItem} item 列表项\n * @param {object} cfg 列表项\n */\n public updateItem(item: ListItem, cfg: object) {\n mix(item, cfg);\n this.clear(); // 由于单个图例项变化,会引起全局变化,所以全部更新\n this.render();\n }\n\n /**\n * 清空列表\n */\n public clearItems() {\n const itemGroup = this.getElementByLocalId('label-group');\n itemGroup && itemGroup.clear();\n }\n\n /**\n * 设置列表项的状态\n * @param {ListItem} item 列表项\n * @param {string} state 状态名\n * @param {boolean} value 状态值, true, false\n */\n public setItemState(item: ListItem, state: string, value: boolean) {\n item[state] = value;\n this.updateTickStates(item); // 应用状态样式\n }\n\n /**\n * 是否存在指定的状态\n * @param {ListItem} item 列表项\n * @param {boolean} state 状态名\n */\n public hasState(item: ListItem, state: string): boolean {\n return !!item[state];\n }\n\n public getItemStates(item: ListItem): string[] {\n const tickStates = this.get('tickStates');\n const rst = [];\n each(tickStates, (v, k) => {\n if (item[k]) {\n // item.selected\n rst.push(k);\n }\n });\n return rst;\n }\n\n /**\n * 清楚所有列表项的状态\n * @param {string} state 状态值\n */\n public clearItemsState(state: string) {\n const items = this.getItemsByState(state);\n each(items, (item) => {\n this.setItemState(item, state, false);\n });\n }\n\n /**\n * 根据状态获取图例项\n * @param {string} state [description]\n * @return {ListItem[]} [description]\n */\n public getItemsByState(state: string): ListItem[] {\n const items = this.getItems();\n return filter(items, (item) => {\n return this.hasState(item, state);\n });\n }\n\n /**\n * @protected\n * 获取坐标轴线的路径,不同的坐标轴不一样\n */\n protected abstract getLinePath(): any[];\n\n /**\n * 获取坐标轴垂直方向的向量\n * @param {number} offset 距离点距离\n * @param {Point} point 坐标轴上的一点\n */\n protected abstract getSideVector(offset: number, point: Point);\n /**\n * 获取坐标轴的向量\n * @param {Point} point 坐标轴上的点\n */\n protected abstract getAxisVector(point: Point): [number, number];\n\n protected getSidePoint(point: Point, offset: number): Point {\n const self = this;\n const vector = self.getSideVector(offset, point);\n return {\n x: point.x + vector[0],\n y: point.y + vector[1],\n };\n }\n\n /**\n * 根据 tick.value 获取坐标轴上对应的点\n * @param {number} tickValue\n * @returns {Point}\n */\n protected abstract getTickPoint(tickValue: number): Point;\n\n protected getTextAnchor(vector: number[]): string {\n let align;\n if (isNumberEqual(vector[0], 0)) {\n align = 'center';\n } else if (vector[0] > 0) {\n align = 'start';\n } else if (vector[0] < 0) {\n align = 'end';\n }\n return align;\n }\n\n protected getTextBaseline(vector: number[]): string {\n let base;\n if (isNumberEqual(vector[1], 0)) {\n base = 'middle';\n } else if (vector[1] > 0) {\n base = 'top';\n } else if (vector[1] < 0) {\n base = 'bottom';\n }\n return base;\n }\n\n protected processOverlap(labelGroup) {}\n\n // 绘制坐标轴线\n private drawLine(group: IGroup) {\n const path = this.getLinePath();\n const line = this.get('line'); // line 的判空在调用 drawLine 之前,不在这里判定\n this.addShape(group, {\n type: 'path',\n id: this.getElementId('line'),\n name: 'axis-line',\n attrs: mix(\n {\n path,\n },\n line.style\n ),\n });\n }\n\n private getTickLineItems(ticks: ListItem[]) {\n const tickLineItems = [];\n const tickLine = this.get('tickLine');\n const alignTick = tickLine.alignTick;\n const tickLineLength = tickLine.length;\n let tickSegment = 1;\n const tickCount = ticks.length;\n if (tickCount >= 2) {\n tickSegment = ticks[1].value - ticks[0].value;\n }\n\n each(ticks, (tick) => {\n let point = tick.point;\n if (!alignTick) {\n // tickLine 不同 tick 对齐时需要调整 point\n point = this.getTickPoint(tick.value - tickSegment / 2);\n }\n const endPoint = this.getSidePoint(point, tickLineLength);\n tickLineItems.push({\n startPoint: point,\n tickValue: tick.value,\n endPoint,\n tickId: tick.id,\n id: `tickline-${tick.id}`,\n });\n });\n\n // 如果 tickLine 不居中对齐,则需要在最后面补充一个 tickLine\n // if (!alignTick && tickCount > 0) {\n // const tick = ticks[tickCount - 1];\n // const point = this.getTickPoint(tick.value + tickSegment / 2);\n // }\n return tickLineItems;\n }\n\n private getSubTickLineItems(tickLineItems) {\n const subTickLineItems = [];\n const subTickLine = this.get('subTickLine');\n const subCount = subTickLine.count;\n const tickLineCount = tickLineItems.length;\n // 刻度线的数量大于 2 时,才绘制子刻度\n if (tickLineCount >= 2) {\n for (let i = 0; i < tickLineCount - 1; i++) {\n const pre = tickLineItems[i];\n const next = tickLineItems[i + 1];\n for (let j = 0; j < subCount; j++) {\n const percent = (j + 1) / (subCount + 1);\n const tickValue = (1 - percent) * pre.tickValue + percent * next.tickValue;\n const point = this.getTickPoint(tickValue);\n const endPoint = this.getSidePoint(point, subTickLine.length);\n subTickLineItems.push({\n startPoint: point,\n endPoint,\n tickValue,\n id: `sub-${pre.id}-${j}`,\n });\n }\n }\n }\n return subTickLineItems;\n }\n\n private getTickLineAttrs(tickItem: ListItem, type: string, index: number, tickItems: ListItem[]) {\n let style = this.get(type).style;\n\n // 保持和 grid 相同的数据结构\n const item = {\n points: [tickItem.startPoint, tickItem.endPoint],\n };\n\n const defaultTickLineStyle = get(this.get('theme'), ['tickLine', 'style'], {});\n style = isFunction(style) ? mix({}, defaultTickLineStyle, style(item, index, tickItems)) : style;\n\n const { startPoint, endPoint } = tickItem;\n return {\n x1: startPoint.x,\n y1: startPoint.y,\n x2: endPoint.x,\n y2: endPoint.y,\n ...style,\n };\n }\n\n // 绘制坐标轴刻度线\n private drawTick(tickItem: ListItem, tickLineGroup: IGroup, type: string, index: number, tickItems: ListItem[]) {\n this.addShape(tickLineGroup, {\n type: 'line',\n id: this.getElementId(tickItem.id),\n name: `axis-${type}`,\n attrs: this.getTickLineAttrs(tickItem, type, index, tickItems),\n });\n }\n\n // 绘制坐标轴刻度线,包括子刻度线\n private drawTickLines(group: IGroup) {\n const ticks = this.get('ticks');\n const subTickLine = this.get('subTickLine');\n const tickLineItems = this.getTickLineItems(ticks);\n const tickLineGroup = this.addGroup(group, {\n name: 'axis-tickline-group',\n id: this.getElementId('tickline-group'),\n });\n const tickCfg = this.get('tickLine');\n each(tickLineItems, (item, index) => {\n if (tickCfg.displayWithLabel) {\n // 如果跟随 label 显示,则检测是否存在对应的 label\n const labelId = this.getElementId(`label-${item.tickId}`);\n if (group.findById(labelId)) {\n this.drawTick(item, tickLineGroup, 'tickLine', index, tickLineItems);\n }\n } else {\n this.drawTick(item, tickLineGroup, 'tickLine', index, tickLineItems);\n }\n });\n\n if (subTickLine) {\n const subTickLineItems = this.getSubTickLineItems(tickLineItems);\n each(subTickLineItems, (item, index: number) => {\n this.drawTick(item, tickLineGroup, 'subTickLine', index, subTickLineItems);\n });\n }\n }\n\n // 预处理 ticks 确定位置和补充 id\n private processTicks() {\n const ticks = this.get('ticks');\n each(ticks, (tick) => {\n tick.point = this.getTickPoint(tick.value);\n // 补充 tick 的 id,为动画和更新做准备\n if (isNil(tick.id)) {\n // 默认使用 tick.name 作为id\n tick.id = tick.name;\n }\n });\n }\n\n // 绘制 ticks 包括文本和 tickLine\n private drawTicks(group: IGroup) {\n this.optimizeTicks();\n this.processTicks();\n if (this.get('label')) {\n this.drawLabels(group);\n }\n\n if (this.get('tickLine')) {\n this.drawTickLines(group);\n }\n\n const ticks = this.get('ticks');\n each(ticks, (tick) => {\n this.applyTickStates(tick, group);\n });\n }\n\n /**\n * 根据 optimize 配置对 ticks 进行抽样,对抽样过后的 ticks 才进行真实的渲染\n */\n private optimizeTicks() {\n const optimize: OptimizeCfg = this.get('optimize');\n const ticks = this.get('ticks');\n if (optimize && optimize.enable && optimize.threshold > 0) {\n const len = size(ticks);\n if (len > optimize.threshold) {\n const page = Math.ceil(len / optimize.threshold);\n const optimizedTicks = ticks.filter((tick, idx) => idx % page === 0);\n this.set('ticks', optimizedTicks);\n this.set('originalTicks', ticks);\n }\n }\n }\n\n // 获取 label 的配置项\n private getLabelAttrs(tick: ListItem, index: number, ticks: ListItem[]) {\n const labelCfg = this.get('label');\n const { offset, offsetX, offsetY, rotate, formatter } = labelCfg;\n const point = this.getSidePoint(tick.point, offset);\n const vector = this.getSideVector(offset, point);\n const text = formatter ? formatter(tick.name, tick, index) : tick.name;\n let { style } = labelCfg;\n style = isFunction(style) ? get(this.get('theme'), ['label', 'style'], {}) : style;\n\n const attrs = mix(\n {\n x: point.x + offsetX,\n y: point.y + offsetY,\n text,\n textAlign: this.getTextAnchor(vector),\n textBaseline: this.getTextBaseline(vector),\n },\n style\n );\n if (rotate) {\n attrs.matrix = getMatrixByAngle(point, rotate);\n }\n return attrs;\n }\n\n // 绘制文本\n private drawLabels(group: IGroup) {\n const ticks = this.get('ticks');\n const labelGroup = this.addGroup(group, {\n name: 'axis-label-group',\n id: this.getElementId('label-group'),\n });\n each(ticks, (tick: ListItem, index: number) => {\n this.addShape(labelGroup, {\n type: 'text',\n name: 'axis-label',\n id: this.getElementId(`label-${tick.id}`),\n attrs: this.getLabelAttrs(tick, index, ticks),\n delegateObject: {\n tick,\n item: tick,\n index,\n },\n });\n });\n this.processOverlap(labelGroup);\n\n // 处理完后再进行 style 回调处理\n const labels = labelGroup.getChildren();\n const defaultLabelStyle = get(this.get('theme'), ['label', 'style'], {});\n const { style, formatter } = this.get('label');\n if (isFunction(style)) {\n const afterProcessTicks = labels.map((label) => get(label.get('delegateObject'), 'tick'));\n each(labels, (label, index) => {\n const { tick } = label.get('delegateObject');\n const text = formatter ? formatter(tick.name, tick, index) : tick.name;\n const newStyle = mix({}, defaultLabelStyle, style(text, index, afterProcessTicks));\n label.attr(newStyle);\n });\n }\n }\n\n // 标题的属性\n private getTitleAttrs() {\n const titleCfg = this.get('title');\n const { style, position, offset, spacing = 0, autoRotate } = titleCfg;\n const titleHeight = style.fontSize;\n let percent = 0.5;\n if (position === 'start') {\n percent = 0;\n } else if (position === 'end') {\n percent = 1;\n }\n const point = this.getTickPoint(percent); // 标题对应的坐标轴上的点\n // 如果没有指定 titleOffset 也没有渲染 label,这里需要自动计算 offset\n const titlePoint = this.getSidePoint(point, offset || spacing + titleHeight / 2); // 标题的点\n\n const attrs = mix(\n {\n x: titlePoint.x,\n y: titlePoint.y,\n text: titleCfg.text,\n },\n style\n );\n\n const rotate = titleCfg.rotate; // rotate 是角度值\n let angle = rotate;\n if (isNil(rotate) && autoRotate) {\n // 用户没有设定旋转角度,同时设置自动旋转\n const vector = this.getAxisVector(point);\n const v1: [number, number] = [1, 0]; // 水平方向的向量\n angle = ext.angleTo(vector, v1, true);\n }\n if (angle) {\n const matrix = getMatrixByAngle(titlePoint, angle);\n attrs.matrix = matrix;\n }\n return attrs;\n }\n\n // 绘制标题\n private drawTitle(group: IGroup) {\n const titleAttrs = this.getTitleAttrs();\n const titleShape = this.addShape(group, {\n type: 'text',\n id: this.getElementId('title'),\n name: 'axis-title',\n attrs: titleAttrs\n });\n // description字段存在时,显示icon\n if(this.get('title')?.description) {\n this.drawDescriptionIcon(group, titleShape, titleAttrs.matrix)\n }\n }\n\n private drawDescriptionIcon(group: IGroup, titleShape: IShape, matrix: number[]) {\n const descriptionShape = this.addGroup(group, {\n name: 'axis-description',\n id: this.getElementById('description')\n })\n\n const { maxX, maxY, height } = titleShape.getBBox();\n const { iconStyle } = this.get('title')\n const spacing = 4; // 设置icon与文本之间距离\n const r = height / 2;\n const lineWidth = r / 6;\n const startX = maxX + spacing;\n const startY = maxY - height / 2;\n // 绘制 information icon 路径\n // 外圆环path\n const [x0, y0] = [startX + r, startY - r];\n const [x1, y1] = [x0 + r, y0 + r];\n const [x2, y2] = [x0, y1 + r];\n const [x3, y3] = [startX, y0 + r];\n // i path\n const [x4, y4] = [startX + r, startY - height / 4];\n const [x5, y5] = [x4, y4 + lineWidth];\n const [x6, y6] = [x5, y5 + lineWidth];\n const [x7, y7] = [x6, y6 + r * 3 / 4];\n this.addShape(descriptionShape, {\n type: 'path',\n id: this.getElementId('title-description-icon'),\n name: 'axis-title-description-icon',\n attrs: {\n path: [\n ['M', x0, y0],\n ['A', r, r, 0, 0, 1, x1, y1],\n ['A', r, r, 0, 0, 1, x2, y2],\n ['A', r, r, 0, 0, 1, x3, y3],\n ['A', r, r, 0, 0, 1, x0, y0],\n ['M', x4, y4],\n ['L', x5, y5],\n ['M', x6, y6],\n ['L', x7, y7]\n ],\n lineWidth,\n matrix,\n ...iconStyle\n },\n });\n // 点击热区,设置透明矩形\n this.addShape(descriptionShape, {\n type: 'rect',\n id: this.getElementId('title-description-rect'),\n name: 'axis-title-description-rect',\n attrs: {\n x: startX,\n y: startY - height / 2,\n width: height,\n height,\n stroke: '#000',\n fill: '#000',\n opacity: 0,\n matrix,\n cursor: 'pointer'\n }\n })\n\n }\n\n private applyTickStates(tick, group) {\n const states = this.getItemStates(tick);\n if (states.length) {\n const tickStates = this.get('tickStates');\n // 分别更新 label 和 tickLine\n const labelId = this.getElementId(`label-${tick.id}`);\n const labelShape = group.findById(labelId);\n if (labelShape) {\n const labelStateStyle = getStatesStyle(tick, 'label', tickStates);\n labelStateStyle && labelShape.attr(labelStateStyle);\n }\n const tickLineId = this.getElementId(`tickline-${tick.id}`);\n const tickLineShape = group.findById(tickLineId);\n if (tickLineShape) {\n const tickLineStateStyle = getStatesStyle(tick, 'tickLine', tickStates);\n tickLineStateStyle && tickLineShape.attr(tickLineStateStyle);\n }\n }\n }\n\n private updateTickStates(tick) {\n const states = this.getItemStates(tick);\n const tickStates = this.get('tickStates');\n const labelCfg = this.get('label');\n const labelShape = this.getElementByLocalId(`label-${tick.id}`);\n const tickLineCfg = this.get('tickLine');\n const tickLineShape = this.getElementByLocalId(`tickline-${tick.id}`);\n\n if (states.length) {\n if (labelShape) {\n const labelStateStyle = getStatesStyle(tick, 'label', tickStates);\n labelStateStyle && labelShape.attr(labelStateStyle);\n }\n if (tickLineShape) {\n const tickLineStateStyle = getStatesStyle(tick, 'tickLine', tickStates);\n tickLineStateStyle && tickLineShape.attr(tickLineStateStyle);\n }\n } else {\n if (labelShape) {\n labelShape.attr(labelCfg.style);\n }\n if (tickLineShape) {\n tickLineShape.attr(tickLineCfg.style);\n }\n }\n }\n}\n\nexport default AxisBase;\n","import { IGroup } from '@antv/g-base';\nimport { each } from '@antv/util';\nimport { ellipsisLabel } from '../../util/label';\n\nfunction ellipseLabels(isVertical: boolean, labelGroup: IGroup, limitLength: number, position: string): boolean {\n const children = labelGroup.getChildren();\n let ellipsisFlag = false;\n each(children, (label) => {\n const rst = ellipsisLabel(isVertical, label, limitLength, position);\n ellipsisFlag = ellipsisFlag || rst;\n });\n return ellipsisFlag;\n}\n\nexport function getDefault() {\n return ellipsisTail;\n}\n\nexport function ellipsisHead(isVertical: boolean, labelGroup: IGroup, limitLength: number): boolean {\n return ellipseLabels(isVertical, labelGroup, limitLength, 'head');\n}\n\nexport function ellipsisTail(isVertical: boolean, labelGroup: IGroup, limitLength: number): boolean {\n return ellipseLabels(isVertical, labelGroup, limitLength, 'tail');\n}\n\nexport function ellipsisMiddle(isVertical: boolean, labelGroup: IGroup, limitLength: number): boolean {\n return ellipseLabels(isVertical, labelGroup, limitLength, 'middle');\n}\n","import { IElement, IGroup } from '@antv/g-base';\nimport { AxisLabelAutoHideCfg } from '../../types';\nimport { getMaxLabelWidth } from '../../util/label';\nimport { getAngleByMatrix } from '../../util/matrix';\nimport { near } from '../../util/util';\n\n// 文本是否旋转\nfunction isRotate(label: IElement) {\n const matrix = label.attr('matrix');\n return matrix && matrix[0] !== 1; // 仅在这个场景下判定\n}\n\nfunction getRotateAngle(label: IElement) {\n const angle = isRotate(label) ? getAngleByMatrix(label.attr('matrix')) : 0;\n return angle % 360;\n}\n\n// autohide 不再考虑超出限制\n// function isOutLimit(isVertical: boolean, label: IElement, limitLength: number) {\n// if (!limitLength) {\n// // 如果没限制 limitLength 则直接返回 false\n// return false;\n// }\n// const canvasBBox = label.getCanvasBBox();\n// let isOut = false;\n// if (isVertical) {\n// isOut = canvasBBox.width > limitLength;\n// } else {\n// isOut = canvasBBox.height > limitLength;\n// }\n// return isOut;\n// }\n\n// 是否重叠\nfunction isOverlap(isVertical: boolean, first: IElement, second: IElement, minGap: number) {\n let overlap = false;\n const angle = getRotateAngle(first);\n const distance = isVertical\n ? Math.abs(second.attr('y') - first.attr('y'))\n : Math.abs(second.attr('x') - first.attr('x'));\n const prevBBox = (isVertical\n ? second.attr('y') > first.attr('y')\n : second.attr('x') > first.attr('x'))\n ? first.getBBox()\n : second.getBBox();\n\n if (isVertical) {\n const ratio = Math.abs(Math.cos(angle));\n if (near(ratio, 0, Math.PI / 180)) {\n overlap = prevBBox.width + minGap > distance;\n } else {\n overlap = prevBBox.height / ratio + minGap > distance;\n }\n } else {\n const ratio = Math.abs(Math.sin(angle));\n if (near(ratio, 0, Math.PI / 180)) {\n overlap = prevBBox.width + minGap > distance;\n } else {\n overlap = prevBBox.height / ratio + minGap > distance;\n }\n }\n\n return overlap;\n}\n\n// 保留第一个或者最后一个\nfunction reserveOne(isVertical: boolean, labelsGroup: IGroup, reversed: boolean, autoHideCfg?: AxisLabelAutoHideCfg) {\n const minGap = autoHideCfg?.minGap || 0;\n const labels = labelsGroup\n .getChildren()\n .slice() // 复制数组\n .filter((item) => item.get('visible'));\n if (!labels.length) {\n return false;\n }\n let hasHide = false;\n if (reversed) {\n // 翻转\n labels.reverse();\n }\n const count = labels.length;\n const first = labels[0];\n let prev = first;\n for (let i = 1; i < count; i++) {\n const label = labels[i];\n const curBBox = label.getBBox();\n // 不再考虑超出限制,而仅仅根据是否重叠进行隐藏 isOutLimit(isVertical, label, limitLength) ||\n const isHide = isOverlap(isVertical, prev, label, minGap);\n if (isHide) {\n label.hide();\n hasHide = true;\n } else {\n prev = label;\n }\n }\n return hasHide;\n}\n\n// 均匀抽样隐藏标签,注意这里假设 label/tick 是均匀的\nfunction parityHide(isVertical: boolean, labelsGroup: IGroup, autoHideCfg?: AxisLabelAutoHideCfg) {\n const minGap = autoHideCfg?.minGap || 0;\n const labels = labelsGroup.getChildren().slice(); // 复制数组\n if (labels.length < 2) {\n // 如果数量小于 2 则直接返回,等于 2 时可能也会重合\n return false;\n }\n let hasHide = false;\n const first = labels[0];\n const firstBBox = first.getBBox();\n const second = labels[1];\n const count = labels.length;\n const angle = getRotateAngle(first);\n const distance = isVertical\n ? Math.abs(second.attr('y') - first.attr('y'))\n : Math.abs(second.attr('x') - first.attr('x'));\n let interval = 0; // 不重叠的坐标文本间距个数\n if (isVertical) {\n // 垂直的坐标轴计算垂直方向的间距\n const ratio = Math.abs(Math.cos(angle));\n if (near(ratio, 0, Math.PI / 180)) {\n const maxWidth = getMaxLabelWidth(labels);\n interval = (maxWidth + minGap) / distance;\n } else {\n interval = (firstBBox.height / ratio + minGap) / distance;\n }\n } else {\n // 水平坐标轴\n const ratio = Math.abs(Math.sin(angle));\n if (near(ratio, 0, Math.PI / 180)) {\n const maxWidth = getMaxLabelWidth(labels);\n interval = (maxWidth + minGap) / distance;\n } else {\n interval = (firstBBox.height / ratio + minGap) / distance;\n }\n }\n // interval > 1 时需要对 label 进行隐藏\n if (interval > 1) {\n interval = Math.ceil(interval);\n for (let i = 0; i < count; i++) {\n if (i % interval !== 0) {\n // 仅保留被整除的 label\n labels[i].hide();\n hasHide = true;\n }\n }\n }\n return hasHide;\n}\n\nexport function getDefault() {\n return equidistance;\n}\n\n/**\n * 保证首个 label 可见,即使超过 limitLength 也不隐藏\n * @param {boolean} isVertical 是否垂直\n * @param {IGroup} labelsGroup label 的分组\n * @param {number} limitLength 另一个方向的长度限制,autoHide 不关心\n * @param {AxisLabelAutoHideCfg} autoHideCfg autoHide overlap 的可选配置参数\n */\nexport function reserveFirst(\n isVertical: boolean,\n labelsGroup: IGroup,\n limitLength?: number,\n autoHideCfg?: AxisLabelAutoHideCfg\n): boolean {\n return reserveOne(isVertical, labelsGroup, false, autoHideCfg);\n}\n\n/**\n * 保证最后一个 label 可见,即使超过 limitLength 也不隐藏\n * @param {boolean} isVertical 是否垂直\n * @param {IGroup} labelsGroup label 的分组\n * @param {number} limitLength 另一个方向的长度限制,autoHide 不关心\n * @param {AxisLabelAutoHideCfg} autoHideCfg autoHide overlap 的可选配置参数\n */\nexport function reserveLast(\n isVertical: boolean,\n labelsGroup: IGroup,\n limitLength?: number,\n autoHideCfg?: AxisLabelAutoHideCfg\n): boolean {\n return reserveOne(isVertical, labelsGroup, true, autoHideCfg);\n}\n\n/**\n * 保证第一个最后一个 label 可见,即使超过 limitLength 也不隐藏\n * @param {boolean} isVertical 是否垂直\n * @param {IGroup} labelsGroup label 的分组\n * @param {number} limitLength 另一个方向的长度限制,autoHide 不关心\n * @param {AxisLabelAutoHideCfg} autoHideCfg autoHide overlap 的可选配置参数\n */\nexport function reserveBoth(\n isVertical: boolean,\n labelsGroup: IGroup,\n limitLength?: number,\n autoHideCfg?: AxisLabelAutoHideCfg\n): boolean {\n const minGap = autoHideCfg?.minGap || 0;\n const labels = labelsGroup.getChildren().slice(); // 复制数组\n if (labels.length <= 2) {\n // 如果数量小于或等于 2 则直接返回\n return false;\n }\n let hasHide = false;\n const count = labels.length;\n const first = labels[0];\n const last = labels[count - 1];\n let preLabel = first;\n // 按照先保存第一个的逻辑循环一遍,最后一个不参与循环\n for (let i = 1; i < count - 1; i++) {\n const label = labels[i];\n const curBBox = label.getBBox();\n // 废弃 isOutLimit(isVertical, label, limitLength) ||\n const isHide = isOverlap(isVertical, preLabel, label, minGap);\n if (isHide) {\n label.hide();\n hasHide = true;\n } else {\n preLabel = label;\n }\n }\n\n const overlap = isOverlap(isVertical, preLabel, last, minGap);\n if (overlap) {\n // 发生冲突,则隐藏前一个保留后一个\n preLabel.hide();\n hasHide = true;\n }\n return hasHide;\n}\n\n/**\n * 保证 label 均匀显示 和 不出现重叠,主要解决文本层叠的问题,对于 limitLength 不处理\n * @param {boolean} isVertical 是否垂直\n * @param {IGroup} labelsGroup label 的分组\n * @param {number} limitLength 另一个方向的长度限制,autoHide 不关心\n * @param {AxisLabelAutoHideCfg} autoHideCfg autoHide overlap 的可选配置参数\n */\nexport function equidistance(\n isVertical: boolean,\n labelsGroup: IGroup,\n limitLength?: number,\n autoHideCfg?: AxisLabelAutoHideCfg\n): boolean {\n let hasHide = parityHide(isVertical, labelsGroup, autoHideCfg);\n\n // 处理 timeCat 类型的 tick,在均匀的基础上,再次检查出现重叠的进行隐藏\n if (reserveOne(isVertical, labelsGroup, false)) {\n hasHide = true;\n }\n\n return hasHide;\n}\n\n/**\n * 同 equidistance, 首先会保证 labels 均匀显示,然后会保留首尾\n * @param isVertical\n * @param labelsGroup\n * @param {number} limitLength 另一个方向的长度限制,autoHide 不关心\n * @param {AxisLabelAutoHideCfg} autoHideCfg autoHide overlap 的可选配置参数\n */\nexport function equidistanceWithReverseBoth(\n isVertical: boolean,\n labelsGroup: IGroup,\n limitLength?: number,\n autoHideCfg?: AxisLabelAutoHideCfg\n): boolean {\n const labels = labelsGroup.getChildren().slice(); // 复制数组\n let hasHide = parityHide(isVertical, labelsGroup, autoHideCfg);\n\n if (labels.length > 2) {\n const first = labels[0];\n const last = labels[labels.length - 1];\n\n // 如果第一个被隐藏了\n if (!first.get('visible')) {\n first.show();\n if (reserveOne(isVertical, labelsGroup, false, autoHideCfg)) {\n hasHide = true;\n }\n }\n\n // 如果最后一个被隐藏了\n if (!last.get('visible')) {\n last.show();\n if (reserveOne(isVertical, labelsGroup, true, autoHideCfg)) {\n hasHide = true;\n }\n }\n }\n\n return hasHide;\n}\n","import { IElement, IGroup } from '@antv/g-base';\nimport { each, isNumber } from '@antv/util';\nimport { getMaxLabelWidth } from '../../util/label';\nimport { getMatrixByAngle } from '../../util/matrix';\nimport Theme from '../../util/theme';\n\n// 统一设置文本的角度\nfunction setLabelsAngle(labels: IElement[], angle: number) {\n each(labels, (label) => {\n const x = label.attr('x');\n const y = label.attr('y');\n const matrix = getMatrixByAngle({ x, y }, angle);\n label.attr('matrix', matrix);\n });\n}\n\ntype getAngleCallback = (limitLength: number, maxWidth: number) => number;\n\n// 旋转文本\nfunction labelRotate(\n isVertical: boolean,\n labelsGroup: IGroup,\n limitLength: number,\n getAngle: getAngleCallback\n): boolean {\n const labels = labelsGroup.getChildren();\n if (!labels.length) {\n return false;\n }\n if (!isVertical && labels.length < 2) {\n // 水平时至少有两个时才旋转\n return false;\n }\n\n const maxWidth = getMaxLabelWidth(labels);\n let isOverlap = false;\n if (isVertical) {\n // limitLength 为 0 或者 null 时不生效\n isOverlap = !!limitLength && maxWidth > limitLength;\n } else {\n // 同 limitLength 无关\n const tickWidth = Math.abs(labels[1].attr('x') - labels[0].attr('x'));\n isOverlap = maxWidth > tickWidth;\n }\n\n if (isOverlap) {\n const angle = getAngle(limitLength, maxWidth);\n setLabelsAngle(labels, angle);\n }\n return isOverlap;\n}\n\nexport function getDefault() {\n return fixedAngle;\n}\n\n/**\n * 固定角度旋转文本\n * @param {boolean} isVertical 是否垂直方向\n * @param {IGroup} labelsGroup 文本的 group\n * @param {number} limitLength 限定长度\n * @param {number} customRotate 自定义旋转角度\n * @return {boolean} 是否发生了旋转\n */\nexport function fixedAngle(\n isVertical: boolean,\n labelsGroup: IGroup,\n limitLength: number,\n customRotate?: number\n): boolean {\n return labelRotate(isVertical, labelsGroup, limitLength, () => {\n if (isNumber(customRotate)) {\n return customRotate;\n }\n return isVertical ? Theme.verticalAxisRotate : Theme.horizontalAxisRotate;\n });\n}\n\n/**\n * 非固定角度旋转文本\n * @param {boolean} isVertical 是否垂直方向\n * @param {IGroup} labelsGroup 文本的 group\n * @param {number} limitLength 限定长度\n * @return {boolean} 是否发生了旋转\n */\nexport function unfixedAngle(isVertical: boolean, labelsGroup: IGroup, limitLength: number): boolean {\n return labelRotate(isVertical, labelsGroup, limitLength, (length, maxWidth) => {\n if (!length) {\n // 如果没有设置 limitLength,则使用固定的角度旋转\n return isVertical ? Theme.verticalAxisRotate : Theme.horizontalAxisRotate;\n }\n if (isVertical) {\n // 垂直时不需要判定 limitLength > maxWidth ,因为此时不会 overlap\n return -Math.acos(length / maxWidth);\n } else {\n let angle = 0;\n if (length > maxWidth) {\n // 需要判定,asin 的参数 -1, 1\n angle = Math.PI / 4;\n } else {\n angle = Math.asin(length / maxWidth);\n if (angle > Math.PI / 4) {\n // 大于 Math.PI / 4 时没意义\n angle = Math.PI / 4;\n }\n }\n return angle;\n }\n });\n}\n","import { IGroup } from '@antv/g-base';\nimport { vec2 } from '@antv/matrix-util';\nimport { each, isFunction, isNil, isNumberEqual, isObject } from '@antv/util';\nimport { ILocation } from '../interfaces';\nimport { AxisLabelAutoHideCfg, BBox, LineAxisCfg, Point, RegionLocationCfg } from '../types';\nimport Theme from '../util/theme';\nimport AxisBase from './base';\nimport * as OverlapUtil from './overlap';\n\nclass Line extends AxisBase implements ILocation {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n type: 'line',\n locationType: 'region',\n /**\n * 起始点, x, y\n * @type {object}\n */\n start: null,\n /**\n * 结束点, x, y\n * @type {object}\n */\n end: null,\n };\n }\n\n // 获取坐标轴线的 path\n public getLinePath(): any[] {\n const start = this.get('start');\n const end = this.get('end');\n const path = [];\n path.push(['M', start.x, start.y]);\n path.push(['L', end.x, end.y]);\n return path;\n }\n\n // 重新计算 layout bbox,考虑到 line 不显示\n protected getInnerLayoutBBox(): BBox {\n const start = this.get('start');\n const end = this.get('end');\n const bbox = super.getInnerLayoutBBox();\n const minX = Math.min(start.x, end.x, bbox.x);\n const minY = Math.min(start.y, end.y, bbox.y);\n const maxX = Math.max(start.x, end.x, bbox.maxX);\n const maxY = Math.max(start.y, end.y, bbox.maxY);\n return {\n x: minX,\n y: minY,\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n\n protected isVertical() {\n const start = this.get('start');\n const end = this.get('end');\n return isNumberEqual(start.x, end.x);\n }\n\n protected isHorizontal() {\n const start = this.get('start');\n const end = this.get('end');\n return isNumberEqual(start.y, end.y);\n }\n\n protected getTickPoint(tickValue: number): Point {\n const self = this;\n const start = self.get('start');\n const end = self.get('end');\n const regionX = end.x - start.x;\n const regionY = end.y - start.y;\n return {\n x: start.x + regionX * tickValue,\n y: start.y + regionY * tickValue,\n };\n }\n\n // 直线坐标轴下任一点的向量方向都相同\n protected getSideVector(offset: number) {\n const axisVector = this.getAxisVector();\n const normal = vec2.normalize([0, 0], axisVector);\n const factor = this.get('verticalFactor');\n const verticalVector: [number, number] = [normal[1], normal[0] * -1]; // 垂直方向,逆时针方向\n return vec2.scale([0, 0], verticalVector, offset * factor);\n }\n\n // 获取坐标轴的向量\n protected getAxisVector(): [number, number] {\n const start = this.get('start');\n const end = this.get('end');\n return [end.x - start.x, end.y - start.y];\n }\n\n protected processOverlap(labelGroup) {\n const isVertical = this.isVertical();\n const isHorizontal = this.isHorizontal();\n // 非垂直,或者非水平时不处理遮挡问题\n if (!isVertical && !isHorizontal) {\n return;\n }\n const labelCfg = this.get('label');\n const titleCfg = this.get('title');\n const verticalLimitLength = this.get('verticalLimitLength');\n const labelOffset = labelCfg.offset;\n let limitLength = verticalLimitLength;\n let titleHeight = 0;\n let titleSpacing = 0;\n if (titleCfg) {\n titleHeight = titleCfg.style.fontSize;\n titleSpacing = titleCfg.spacing;\n }\n if (limitLength) {\n limitLength = limitLength - labelOffset - titleSpacing - titleHeight;\n }\n const overlapOrder = this.get('overlapOrder');\n each(overlapOrder, (name) => {\n if (labelCfg[name] && this.canProcessOverlap(name)) {\n this.autoProcessOverlap(name, labelCfg[name], labelGroup, limitLength);\n }\n });\n if (titleCfg) {\n if (isNil(titleCfg.offset)) {\n // 调整 title 的 offset\n const bbox = labelGroup.getCanvasBBox();\n const length = isVertical ? bbox.width : bbox.height;\n // 如果用户没有设置 offset,则自动计算\n titleCfg.offset = labelOffset + length + titleSpacing + titleHeight / 2;\n }\n }\n }\n\n /**\n * 是否可以执行某一 overlap\n * @param name\n */\n private canProcessOverlap(name: string) {\n const labelCfg = this.get('label');\n\n // 对 autoRotate,如果配置了旋转角度,直接进行固定角度旋转\n if (name === 'autoRotate') {\n return isNil(labelCfg.rotate);\n }\n\n // 默认所有 overlap 都可执行\n return true;\n }\n\n private autoProcessOverlap(name: string, value: any, labelGroup: IGroup, limitLength: number) {\n const isVertical = this.isVertical();\n let hasAdjusted = false;\n const util = OverlapUtil[name];\n if (value === true) {\n const labelCfg = this.get('label');\n // true 形式的配置:使用 overlap 默认的的处理方法进行处理\n hasAdjusted = util.getDefault()(isVertical, labelGroup, limitLength);\n } else if (isFunction(value)) {\n // 回调函数形式的配置: 用户可以传入回调函数\n hasAdjusted = value(isVertical, labelGroup, limitLength);\n } else if (isObject(value)) {\n // object 形式的配置方式:包括 处理方法 type, 和可选参数配置 cfg\n const overlapCfg = value as { type: string; cfg?: AxisLabelAutoHideCfg };\n if (util[overlapCfg.type]) {\n hasAdjusted = util[overlapCfg.type](isVertical, labelGroup, limitLength, overlapCfg.cfg);\n }\n } else if (util[value]) {\n // 字符串类型的配置:按照名称执行 overlap 处理方法\n hasAdjusted = util[value](isVertical, labelGroup, limitLength);\n }\n if (name === 'autoRotate') {\n // 文本旋转后,文本的对齐方式可能就不合适了\n if (hasAdjusted) {\n const labels = labelGroup.getChildren();\n const verticalFactor = this.get('verticalFactor');\n each(labels, (label) => {\n const textAlign = label.attr('textAlign');\n if (textAlign === 'center') {\n // 居中的文本需要调整旋转度\n const newAlign = verticalFactor > 0 ? 'end' : 'start';\n label.attr('textAlign', newAlign);\n }\n });\n }\n } else if (name === 'autoHide') {\n const children = labelGroup.getChildren().slice(0); // 复制数组,删除时不会出错\n each(children, (label) => {\n if (!label.get('visible')) {\n if (this.get('isRegister')) {\n // 已经注册过了,则删除\n this.unregisterElement(label);\n }\n label.remove(); // 防止 label 数量太多,所以统一删除\n }\n });\n }\n }\n}\n\nexport default Line;\n","import { IGroup } from '@antv/g-base';\nimport { each, isNil, isFunction, isObject } from '@antv/util';\nimport { vec2 } from '@antv/matrix-util';\nimport AxisBase from './base';\nimport * as OverlapUtil from './overlap';\nimport type { AxisLabelAutoHideCfg } from '../types';\nimport type { CircleAxisCfg, Point, } from '../types';\n\nclass Circle extends AxisBase {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n type: 'circle',\n locationType: 'circle',\n center: null,\n radius: null,\n startAngle: -Math.PI / 2,\n endAngle: (Math.PI * 3) / 2,\n };\n }\n\n protected getLinePath(): any[] {\n const center = this.get('center');\n const x = center.x;\n const y = center.y;\n const rx = this.get('radius');\n const ry = rx;\n const startAngle = this.get('startAngle');\n const endAngle = this.get('endAngle');\n\n let path = [];\n if (Math.abs(endAngle - startAngle) === Math.PI * 2) {\n path = [['M', x, y - ry], ['A', rx, ry, 0, 1, 1, x, y + ry], ['A', rx, ry, 0, 1, 1, x, y - ry], ['Z']];\n } else {\n const startPoint = this.getCirclePoint(startAngle);\n const endPoint = this.getCirclePoint(endAngle);\n const large = Math.abs(endAngle - startAngle) > Math.PI ? 1 : 0;\n const sweep = startAngle > endAngle ? 0 : 1;\n path = [\n ['M', x, y],\n ['L', startPoint.x, startPoint.y],\n ['A', rx, ry, 0, large, sweep, endPoint.x, endPoint.y],\n ['L', x, y],\n ];\n }\n return path;\n }\n\n protected getTickPoint(tickValue): Point {\n const startAngle = this.get('startAngle');\n const endAngle = this.get('endAngle');\n const angle = startAngle + (endAngle - startAngle) * tickValue;\n return this.getCirclePoint(angle);\n }\n\n // 获取垂直于坐标轴的向量\n protected getSideVector(offset: number, point: Point) {\n const center = this.get('center');\n const vector: [number, number] = [point.x - center.x, point.y - center.y];\n const factor = this.get('verticalFactor');\n const vecLen = vec2.length(vector);\n vec2.scale(vector, vector, (factor * offset) / vecLen);\n return vector;\n }\n\n // 获取沿坐标轴方向的向量\n protected getAxisVector(point: Point): [number, number] {\n const center = this.get('center');\n const vector = [point.x - center.x, point.y - center.y];\n return [vector[1], -1 * vector[0]]; // 获取顺时针方向的向量\n }\n\n // 根据圆心和半径获取点\n private getCirclePoint(angle: number, radius?: number) {\n const center = this.get('center');\n radius = radius || this.get('radius');\n return {\n x: center.x + Math.cos(angle) * radius,\n y: center.y + Math.sin(angle) * radius,\n };\n }\n\n /**\n * 是否可以执行某一 overlap\n * @param name\n */\n private canProcessOverlap(name: string) {\n const labelCfg = this.get('label');\n\n // 对 autoRotate,如果配置了旋转角度,直接进行固定角度旋转\n if (name === 'autoRotate') {\n return isNil(labelCfg.rotate);\n }\n\n // 默认所有 overlap 都可执行\n return true;\n }\n\n protected processOverlap(labelGroup) {\n const labelCfg = this.get('label');\n const titleCfg = this.get('title');\n const verticalLimitLength = this.get('verticalLimitLength');\n const labelOffset = labelCfg.offset;\n let limitLength = verticalLimitLength;\n let titleHeight = 0;\n let titleSpacing = 0;\n if (titleCfg) {\n titleHeight = titleCfg.style.fontSize;\n titleSpacing = titleCfg.spacing;\n }\n if (limitLength) {\n limitLength = limitLength - labelOffset - titleSpacing - titleHeight;\n }\n const overlapOrder = this.get('overlapOrder');\n each(overlapOrder, (name) => {\n if (labelCfg[name] && this.canProcessOverlap(name)) {\n this.autoProcessOverlap(name, labelCfg[name], labelGroup, limitLength);\n }\n });\n if (titleCfg) {\n if (isNil(titleCfg.offset)) {\n // 调整 title 的 offset\n const { height: length } = labelGroup.getCanvasBBox();\n // 如果用户没有设置 offset,则自动计算\n titleCfg.offset = labelOffset + length + titleSpacing + titleHeight / 2;\n }\n }\n }\n\n private autoProcessOverlap(name: string, value: any, labelGroup: IGroup, limitLength: number) {\n let hasAdjusted = false;\n const util = OverlapUtil[name];\n if (limitLength > 0) {\n if (value === true) {\n // true 形式的配置:使用 overlap 默认的的处理方法进行处理\n hasAdjusted = util.getDefault()(false, labelGroup, limitLength);\n } else if (isFunction(value)) {\n // 回调函数形式的配置: 用户可以传入回调函数\n hasAdjusted = value(false, labelGroup, limitLength);\n } else if (isObject(value)) {\n // object 形式的配置方式:包括 处理方法 type, 和可选参数配置 cfg\n const overlapCfg = value as { type: string; cfg?: AxisLabelAutoHideCfg };\n if (util[overlapCfg.type]) {\n hasAdjusted = util[overlapCfg.type](false, labelGroup, limitLength, overlapCfg.cfg);\n }\n } else if (util[value]) {\n // 字符串类型的配置:按照名称执行 overlap 处理方法\n hasAdjusted = util[value](false, labelGroup, limitLength);\n }\n }\n if (name === 'autoRotate') {\n // 文本旋转后,文本的对齐方式可能就不合适了\n if (hasAdjusted) {\n const labels = labelGroup.getChildren();\n const verticalFactor = this.get('verticalFactor');\n each(labels, (label) => {\n const textAlign = label.attr('textAlign');\n if (textAlign === 'center') {\n // 居中的文本需要调整旋转度\n const newAlign = verticalFactor > 0 ? 'end' : 'start';\n label.attr('textAlign', newAlign);\n }\n });\n }\n } else if (name === 'autoHide') {\n const children = labelGroup.getChildren().slice(0); // 复制数组,删除时不会出错\n each(children, (label) => {\n if (!label.get('visible')) {\n if (this.get('isRegister')) {\n // 已经注册过了,则删除\n this.unregisterElement(label);\n }\n label.remove(); // 防止 label 数量太多,所以统一删除\n }\n });\n }\n }\n}\n\nexport default Circle;\n","import { IGroup } from '@antv/g-base';\nimport { isNil } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { CrosshairBaseCfg, Point } from '../types';\nimport { getMatrixByAngle } from '../util/matrix';\nimport Theme from '../util/theme';\nimport { formatPadding } from '../util/util';\n\nabstract class CrosshairBase extends GroupComponent {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'crosshair',\n type: 'base',\n line: {},\n text: null,\n textBackground: {},\n capture: false, // 不能被拾取\n defaultCfg: {\n line: {\n style: {\n lineWidth: 1,\n stroke: Theme.lineColor,\n },\n },\n text: {\n position: 'start',\n offset: 10,\n autoRotate: false,\n content: null,\n style: {\n fill: Theme.textColor,\n textAlign: 'center',\n textBaseline: 'middle',\n fontFamily: Theme.fontFamily,\n },\n },\n textBackground: {\n padding: 5,\n style: {\n stroke: Theme.lineColor,\n },\n },\n },\n };\n }\n\n protected renderInner(group: IGroup) {\n if (this.get('line')) {\n this.renderLine(group);\n }\n if (this.get('text')) {\n this.renderText(group);\n this.renderBackground(group);\n }\n }\n\n /**\n * @protected\n * 获取文本点的位置\n * @return {Point} 文本的位置\n */\n protected abstract getTextPoint(): Point;\n\n protected abstract getRotateAngle(): number;\n\n protected renderText(group: IGroup) {\n const text = this.get('text');\n const { style, autoRotate, content } = text;\n if (!isNil(content)) {\n const textPoint = this.getTextPoint();\n let matrix = null;\n if (autoRotate) {\n const angle = this.getRotateAngle();\n matrix = getMatrixByAngle(textPoint, angle);\n }\n this.addShape(group, {\n type: 'text',\n name: 'crosshair-text',\n id: this.getElementId('text'),\n attrs: {\n ...textPoint,\n text: content,\n matrix,\n ...style,\n },\n });\n }\n }\n\n protected abstract getLinePath(): any[];\n\n protected renderLine(group: IGroup) {\n const path = this.getLinePath();\n const line = this.get('line');\n const style = line.style;\n this.addShape(group, {\n type: 'path',\n name: 'crosshair-line',\n id: this.getElementId('line'),\n attrs: {\n path,\n ...style,\n },\n });\n }\n\n // 绘制文本的背景\n private renderBackground(group: IGroup) {\n const textId = this.getElementId('text');\n const textShape = group.findById(textId); // 查找文本\n const textBackground = this.get('textBackground');\n\n if (textBackground && textShape) {\n const textBBox = textShape.getBBox();\n const padding = formatPadding(textBackground.padding); // 用户传入的 padding 格式不定\n const style = textBackground.style;\n const backgroundShape = this.addShape(group, {\n type: 'rect',\n name: 'crosshair-text-background',\n id: this.getElementId('text-background'),\n attrs: {\n x: textBBox.x - padding[3],\n y: textBBox.y - padding[0],\n width: textBBox.width + padding[1] + padding[3],\n height: textBBox.height + padding[0] + padding[2],\n matrix: textShape.attr('matrix'),\n ...style,\n },\n });\n backgroundShape.toBack();\n }\n }\n}\n\nexport default CrosshairBase;\n","import { ILocation } from '../interfaces';\nimport { LineCrosshairCfg, Point, RegionLocationCfg } from '../types';\nimport { getTextPoint } from '../util/util';\nimport CrosshairBase from './base';\n\nclass LineCrosshair extends CrosshairBase implements ILocation {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n type: 'line',\n locationType: 'region',\n start: null,\n end: null,\n };\n }\n\n // 直线的文本需要同直线垂直\n protected getRotateAngle(): number {\n const { start, end } = this.getLocation();\n const { position } = this.get('text');\n const angle = Math.atan2(end.y - start.y, end.x - start.x);\n const tangentAngle = position === 'start' ? angle - Math.PI / 2 : angle + Math.PI / 2;\n return tangentAngle;\n }\n\n protected getTextPoint() {\n const { start, end } = this.getLocation();\n const { position, offset } = this.get('text');\n return getTextPoint(start, end, position, offset);\n }\n\n protected getLinePath(): any[] {\n const { start, end } = this.getLocation();\n return [\n ['M', start.x, start.y],\n ['L', end.x, end.y],\n ];\n }\n}\n\nexport default LineCrosshair;\n","import { ILocation } from '../interfaces';\nimport { CircleCrosshairCfg, CircleLocationCfg, Point } from '../types';\nimport { getCirclePoint } from '../util/util';\nimport CrosshairBase from './base';\n\nclass LineCrosshair extends CrosshairBase implements ILocation {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n type: 'circle',\n locationType: 'circle',\n center: null,\n radius: 100,\n startAngle: -Math.PI / 2,\n endAngle: (Math.PI * 3) / 2,\n };\n }\n\n protected getRotateAngle(): number {\n const { startAngle, endAngle } = this.getLocation();\n const { position } = this.get('text');\n const tangentAngle = position === 'start' ? startAngle + Math.PI / 2 : endAngle - Math.PI / 2;\n return tangentAngle;\n }\n\n protected getTextPoint(): Point {\n const text = this.get('text');\n const { position, offset } = text;\n const { center, radius, startAngle, endAngle } = this.getLocation();\n const angle = position === 'start' ? startAngle : endAngle;\n const tangentAngle = this.getRotateAngle() - Math.PI;\n const point = getCirclePoint(center, radius, angle);\n // 这个地方其实应该求切线向量然后在乘以 offset,但是太啰嗦了,直接给出结果\n // const tangent = [Math.cos(tangentAngle), Math.sin(tangentAngle)];\n // const offsetVector = vec2.scale([], tangent, offset);\n const offsetX = Math.cos(tangentAngle) * offset;\n const offsetY = Math.sin(tangentAngle) * offset;\n return {\n x: point.x + offsetX,\n y: point.y + offsetY,\n };\n }\n\n protected getLinePath(): any[] {\n const { center, radius, startAngle, endAngle } = this.getLocation();\n let path = null;\n if (endAngle - startAngle === Math.PI * 2) {\n // 整圆\n const { x, y } = center;\n path = [\n ['M', x, y - radius],\n ['A', radius, radius, 0, 1, 1, x, y + radius],\n ['A', radius, radius, 0, 1, 1, x, y - radius],\n ['Z'],\n ];\n } else {\n const startPoint = getCirclePoint(center, radius, startAngle);\n const endPoint = getCirclePoint(center, radius, endAngle);\n const large = Math.abs(endAngle - startAngle) > Math.PI ? 1 : 0;\n const sweep = startAngle > endAngle ? 0 : 1;\n path = [\n ['M', startPoint.x, startPoint.y],\n ['A', radius, radius, 0, large, sweep, endPoint.x, endPoint.y],\n ];\n }\n return path;\n }\n}\n\nexport default LineCrosshair;\n","export const CONTAINER_CLASS = 'g2-crosshair';\nexport const CROSSHAIR_LINE = `${CONTAINER_CLASS}-line`;\nexport const CROSSHAIR_TEXT = `${CONTAINER_CLASS}-text`;\n","import Theme from '../util/theme';\n\n// tooltip 相关 dom 的 css 类名\nimport * as CssConst from './css-const';\n\nexport default {\n // css style for tooltip\n [`${CssConst.CONTAINER_CLASS}`]: {\n position: 'relative'\n },\n [`${CssConst.CROSSHAIR_LINE}`]: {\n position: 'absolute',\n backgroundColor: 'rgba(0, 0, 0, 0.25)',\n },\n [`${CssConst.CROSSHAIR_TEXT}`]: {\n position: 'absolute',\n color: Theme.textColor,\n fontFamily: Theme.fontFamily,\n }\n};","import { createDom, modifyCSS } from '@antv/dom-util';\nimport { substitute, hasKey } from '@antv/util';\nimport { toPx, getTextPoint } from '../util/util';\nimport HtmlComponent from '../abstract/html-component';\nimport * as CssConst from './css-const';\nimport HtmlTheme from './html-theme';\nimport {HtmlCrossHairCfg} from '../types';\nclass HtmlCrosshair extends HtmlComponent {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'crosshair',\n type: 'html',\n locationType: 'region',\n start: {x: 0, y: 0}, // 防止初始化报错\n end: {x: 0, y: 0}, // 防止初始化报错\n capture: false,\n text: null,\n containerTpl: `
`,\n crosshairTpl: `
`,\n textTpl: `{content}`,\n domStyles: null,\n containerClassName: CssConst.CONTAINER_CLASS,\n defaultStyles: HtmlTheme,\n defaultCfg: {\n text: {\n position: 'start',\n content: null,\n align: 'center',\n offset: 10\n }\n },\n };\n }\n\n render() {\n this.resetText();\n this.resetPosition();\n }\n\n // 绘制 crosshair\n private initCrossHair() {\n const container = this.getContainer();\n const crosshairTpl = this.get('crosshairTpl');\n const crosshairEl = createDom(crosshairTpl);\n container.appendChild(crosshairEl);\n this.applyStyle(CssConst.CROSSHAIR_LINE, crosshairEl);\n this.set('crosshairEl', crosshairEl);\n }\n\n // 获取文本的位置\n private getTextPoint() {\n const { start, end } = this.getLocation();\n const { position, offset } = this.get('text');\n return getTextPoint(start, end, position, offset);\n }\n\n // 设置 text\n private resetText() {\n const text = this.get('text');\n let textEl = this.get('textEl') as HTMLElement;\n if (text) {\n const {content} = text;\n if (!textEl) {\n const container = this.getContainer();\n const textTpl = substitute(this.get('textTpl'), text);\n textEl = createDom(textTpl);\n container.appendChild(textEl);\n this.applyStyle(CssConst.CROSSHAIR_TEXT, textEl);\n this.set('textEl', textEl);\n }\n textEl.innerHTML = content;\n } else if (textEl) {\n textEl.remove();\n }\n }\n // 是否垂直\n private isVertical(start, end) {\n return start.x === end.x;\n }\n // 重新调整位置\n protected resetPosition() {\n let crosshairEl = this.get('crosshairEl');\n if (!crosshairEl) {\n this.initCrossHair();\n crosshairEl = this.get('crosshairEl');\n }\n const start = this.get('start');\n const end = this.get('end');\n const minX = Math.min(start.x, end.x);\n const minY = Math.min(start.y, end.y);\n if (this.isVertical(start, end)) {\n modifyCSS(crosshairEl, {\n width: '1px',\n height: toPx(Math.abs(end.y - start.y))\n });\n } else {\n modifyCSS(crosshairEl, {\n height: '1px',\n width: toPx(Math.abs(end.x - start.x))\n });\n }\n modifyCSS(crosshairEl, {\n top: toPx(minY),\n left: toPx(minX)\n });\n this.alignText();\n }\n\n private alignText() {\n // 重新设置 text 位置\n const textEl = this.get('textEl');\n if (textEl) {\n const { align } = this.get('text');\n const clientWidth = textEl.clientWidth;\n const point = this.getTextPoint();\n switch(align) {\n case 'center': \n point.x = point.x - clientWidth / 2;\n break;\n case 'right':\n point.x = point.x - clientWidth;\n case 'left':\n break;\n }\n modifyCSS(textEl, {\n top: toPx(point.y),\n left: toPx(point.x)\n });\n }\n }\n\n protected updateInner(cfg: Partial) {\n if (hasKey(cfg, 'text')) {\n this.resetText();\n }\n super.updateInner(cfg);\n }\n}\n\nexport default HtmlCrosshair;","import { IGroup } from '@antv/g-base';\nimport { each, isString, mix, isFunction } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { GridBaseCfg, GroupComponentCfg, Point } from '../types';\nimport Theme from '../util/theme';\n\nabstract class GridBase extends GroupComponent {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'grid',\n line: {},\n alternateColor: null,\n capture: false,\n items: [],\n closed: false,\n defaultCfg: {\n line: {\n type: 'line', // 对于 line 类型的 grid 有 line, smooth 两种,cirle 类型的 grid 有 line 和 circle\n style: {\n lineWidth: 1,\n stroke: Theme.lineColor,\n },\n },\n },\n };\n }\n\n /**\n * 获取栅格线的类型\n * @return {string} 栅格线类型\n */\n protected getLineType(): string {\n const line = this.get('line') || this.get('defaultCfg').line;\n return line.type;\n }\n\n protected renderInner(group: IGroup) {\n this.drawGrid(group);\n }\n\n /**\n * 获取栅格线的路径\n * @param {Point[]} points 栅格线的点集合\n * @param {boolean} reversed 顺序是否相反\n * @return {any[]} 路径\n */\n protected abstract getGridPath(points: Point[], reversed?: boolean): any[];\n\n protected getAlternatePath(prePoints: Point[], points: Point[]) {\n let regionPath = this.getGridPath(prePoints);\n const reversePoints = points.slice(0).reverse();\n const nextPath = this.getGridPath(reversePoints, true);\n const closed = this.get('closed');\n if (closed) {\n regionPath = regionPath.concat(nextPath);\n } else {\n nextPath[0][0] = 'L'; // 更新第一个节点\n regionPath = regionPath.concat(nextPath);\n regionPath.push(['Z']);\n }\n return regionPath;\n }\n // 获取路径的配置项\n private getPathStyle() {\n return this.get('line').style;\n }\n\n // 绘制栅格\n private drawGrid(group: IGroup) {\n const line = this.get('line');\n const items = this.get('items');\n const alternateColor = this.get('alternateColor');\n let preItem = null;\n each(items, (item, index) => {\n const id = item.id || index;\n // 绘制栅格线\n if (line) {\n let style = this.getPathStyle();\n style = isFunction(style) ? style(item, index, items) : style;\n\n const lineId = this.getElementId(`line-${id}`);\n const gridPath = this.getGridPath(item.points);\n this.addShape(group, {\n type: 'path',\n name: 'grid-line',\n id: lineId,\n attrs: mix(\n {\n path: gridPath,\n },\n style\n ),\n });\n }\n // 如果存在 alternateColor 则绘制矩形\n // 从第二个栅格线开始绘制\n if (alternateColor && index > 0) {\n const regionId = this.getElementId(`region-${id}`);\n const isEven = index % 2 === 0;\n if (isString(alternateColor)) {\n // 如果颜色是单值,则是仅绘制偶数时的区域\n if (isEven) {\n this.drawAlternateRegion(regionId, group, preItem.points, item.points, alternateColor);\n }\n } else {\n const color = isEven ? alternateColor[1] : alternateColor[0];\n this.drawAlternateRegion(regionId, group, preItem.points, item.points, color);\n }\n }\n preItem = item;\n });\n }\n\n // 绘制栅格线间的间隔\n private drawAlternateRegion(id: string, group: IGroup, prePoints: Point[], points: Point[], color: string) {\n const regionPath = this.getAlternatePath(prePoints, points);\n this.addShape(group, {\n type: 'path',\n id,\n name: 'grid-region',\n attrs: {\n path: regionPath,\n fill: color,\n },\n });\n }\n}\n\nexport default GridBase;\n","import { each } from '@antv/util';\nimport { CircleGridCfg, Point } from '../types';\nimport GridBase from './base';\n\nfunction distance(x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\nclass Circle extends GridBase {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n type: 'circle',\n /**\n * 中心点\n * @type {object}\n */\n center: null,\n /**\n * 栅格线是否封闭\n * @type {true}\n */\n closed: true,\n };\n }\n\n protected getGridPath(points: Point[], reversed: boolean) {\n const lineType = this.getLineType();\n const closed = this.get('closed');\n const path = [];\n if (points.length) {\n // 防止出错\n if (lineType === 'circle') {\n const center = this.get('center');\n const firstPoint = points[0];\n const radius = distance(center.x, center.y, firstPoint.x, firstPoint.y);\n const sweepFlag = reversed ? 0 : 1; // 顺时针还是逆时针\n if (closed) {\n // 封闭时,绘制整个圆\n path.push(['M', center.x, center.y - radius]);\n path.push(['A', radius, radius, 0, 0, sweepFlag, center.x, center.y + radius]);\n path.push(['A', radius, radius, 0, 0, sweepFlag, center.x, center.y - radius]);\n path.push(['Z']);\n } else {\n each(points, (point, index) => {\n if (index === 0) {\n path.push(['M', point.x, point.y]);\n } else {\n path.push(['A', radius, radius, 0, 0, sweepFlag, point.x, point.y]);\n }\n });\n }\n } else {\n each(points, (point, index) => {\n if (index === 0) {\n path.push(['M', point.x, point.y]);\n } else {\n path.push(['L', point.x, point.y]);\n }\n });\n if (closed) {\n path.push(['Z']);\n }\n }\n }\n return path;\n }\n}\n\nexport default Circle;\n","import { each } from '@antv/util';\nimport { Point } from '../types';\nimport GridBase from './base';\n\nclass Line extends GridBase {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n type: 'line',\n };\n }\n\n protected getGridPath(points: Point[]): any[] {\n const path = [];\n each(points, (point, index) => {\n if (index === 0) {\n path.push(['M', point.x, point.y]);\n } else {\n path.push(['L', point.x, point.y]);\n }\n });\n return path;\n }\n}\n\nexport default Line;\n","import { IGroup } from '@antv/g-base';\nimport GroupComponent from '../abstract/group-component';\nimport { ILocation } from '../interfaces';\nimport { BBox, LegendBaseCfg, Point, PointLocationCfg } from '../types';\nimport { createBBox, formatPadding } from '../util/util';\n\nabstract class LegendBase extends GroupComponent\n implements ILocation {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'legend',\n /**\n * 布局方式: horizontal,vertical\n * @type {String}\n */\n layout: 'horizontal',\n locationType: 'point',\n x: 0,\n y: 0,\n offsetX: 0,\n offsetY: 0,\n title: null,\n background: null,\n };\n }\n\n public getLayoutBBox(): BBox {\n const bbox = super.getLayoutBBox();\n const maxWidth = this.get('maxWidth');\n const maxHeight = this.get('maxHeight');\n\n let { width, height } = bbox;\n if (maxWidth) {\n width = Math.min(width, maxWidth);\n }\n if (maxHeight) {\n height = Math.min(height, maxHeight);\n }\n \n return createBBox(bbox.minX, bbox.minY, width, height);\n }\n\n public setLocation(cfg: PointLocationCfg) {\n this.set('x', cfg.x);\n this.set('y', cfg.y);\n this.resetLocation();\n }\n\n protected resetLocation() {\n const x = this.get('x');\n const y = this.get('y');\n const offsetX = this.get('offsetX');\n const offsetY = this.get('offsetY');\n this.moveElementTo(this.get('group'), {\n x: x + offsetX,\n y: y + offsetY,\n });\n }\n\n protected applyOffset() {\n this.resetLocation();\n }\n\n // 获取当前绘制的点\n protected getDrawPoint(): Point {\n return this.get('currentPoint');\n }\n\n protected setDrawPoint(point: Point) {\n return this.set('currentPoint', point);\n }\n // 复写父类定义的绘制方法\n protected renderInner(group: IGroup) {\n this.resetDraw();\n if (this.get('title')) {\n this.drawTitle(group);\n }\n this.drawLegendContent(group);\n if (this.get('background')) {\n this.drawBackground(group);\n }\n // this.resetLocation(); // 在顶层已经在处理偏移时一起处理了\n }\n\n protected abstract drawLegendContent(group);\n\n // 绘制背景\n protected drawBackground(group: IGroup) {\n const background = this.get('background');\n const bbox = group.getBBox();\n const padding = formatPadding(background.padding);\n const attrs = {\n // 背景从 (0,0) 开始绘制\n x: 0,\n y: 0,\n width: bbox.width + padding[1] + padding[3],\n height: bbox.height + padding[0] + padding[2],\n ...background.style,\n };\n const backgroundShape = this.addShape(group, {\n type: 'rect',\n id: this.getElementId('background'),\n name: 'legend-background',\n attrs,\n });\n backgroundShape.toBack();\n }\n\n // 绘制标题,标题在图例项的上面\n protected drawTitle(group: IGroup) {\n const currentPoint = this.get('currentPoint');\n const titleCfg = this.get('title');\n const { spacing, style, text } = titleCfg;\n const shape = this.addShape(group, {\n type: 'text',\n id: this.getElementId('title'),\n name: 'legend-title',\n attrs: {\n text,\n x: currentPoint.x,\n y: currentPoint.y,\n ...style,\n },\n });\n const bbox = shape.getBBox();\n // 标题单独在一行\n this.set('currentPoint', { x: currentPoint.x, y: bbox.maxY + spacing });\n }\n\n // 重置绘制时开始的位置,如果绘制边框,考虑边框的 padding\n private resetDraw() {\n const background = this.get('background');\n const currentPoint = { x: 0, y: 0 };\n if (background) {\n const padding = formatPadding(background.padding);\n currentPoint.x = padding[3]; // 左边 padding\n currentPoint.y = padding[0]; // 上面 padding\n }\n this.set('currentPoint', currentPoint); // 设置绘制的初始位置\n }\n}\n\nexport default LegendBase;\n","import { IGroup, IShape } from '@antv/g-base';\nimport { clamp, deepMix, each, filter, get, mix, isNumber, isFunction } from '@antv/util';\nimport { IList } from '../interfaces';\nimport {\n CategoryLegendCfg,\n LegendPageNavigatorCfg,\n LegendItemNameCfg,\n LegendMarkerCfg,\n ListItem,\n LegendRadio,\n} from '../types';\nimport { ellipsisLabel } from '../util/label';\nimport { getMatrixByAngle, getMatrixByTranslate } from '../util/matrix';\nimport { getStatesStyle } from '../util/state';\nimport Theme from '../util/theme';\nimport LegendBase from './base';\n\n/**\n * 分页器 默认配置\n */\nconst DEFAULT_PAGE_NAVIGATOR = {\n marker: {\n style: {\n inactiveFill: '#000',\n inactiveOpacity: 0.45,\n fill: '#000',\n opacity: 1,\n size: 12,\n },\n },\n text: {\n style: {\n fill: '#ccc',\n fontSize: 12,\n },\n },\n};\n\n// 默认 文本style\nconst textStyle = {\n fill: Theme.textColor,\n fontSize: 12,\n textAlign: 'start',\n textBaseline: 'middle',\n fontFamily: Theme.fontFamily,\n fontWeight: 'normal',\n lineHeight: 12,\n};\n\nconst RIGHT_ARROW_NAME = 'navigation-arrow-right';\nconst LEFT_ARROW_NAME = 'navigation-arrow-left';\n\nconst ROTATE_MAP = {\n right: (90 * Math.PI) / 180,\n left: ((360 - 90) * Math.PI) / 180,\n up: 0,\n down: (180 * Math.PI) / 180,\n};\nclass Category extends LegendBase implements IList {\n private currentPageIndex = 1;\n private totalPagesCnt = 1;\n private pageWidth = 0;\n private pageHeight = 0;\n private startX = 0;\n private startY = 0;\n\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'legend',\n type: 'category',\n itemSpacing: 24,\n itemMarginBottom: 8,\n maxItemWidth: null,\n itemWidth: null,\n itemHeight: null,\n itemName: {},\n itemValue: null,\n maxWidth: null,\n maxHeight: null,\n marker: {},\n radio: null,\n items: [],\n itemStates: {},\n itemBackground: {},\n pageNavigator: {},\n defaultCfg: {\n title: {\n spacing: 5,\n style: {\n fill: Theme.textColor,\n fontSize: 12,\n textAlign: 'start',\n textBaseline: 'top',\n },\n },\n background: {\n padding: 5,\n style: {\n stroke: Theme.lineColor,\n },\n },\n itemBackground: {\n style: {\n opacity: 0,\n fill: '#fff',\n },\n },\n pageNavigator: DEFAULT_PAGE_NAVIGATOR,\n itemName: {\n spacing: 16, // 如果右边有 value 或者 RadioIcon 使用这个间距\n style: textStyle,\n },\n marker: {\n spacing: 8,\n style: {\n r: 6,\n symbol: 'circle',\n },\n },\n itemValue: {\n alignRight: false, // 只有itemWidth 不为 null 时此属性有效\n formatter: null,\n style: textStyle,\n spacing: 6, // 如果右边有 RadioIcon 使用在这个间距\n },\n itemStates: {\n active: {\n nameStyle: {\n opacity: 0.8,\n },\n },\n unchecked: {\n nameStyle: {\n fill: Theme.uncheckedColor,\n },\n markerStyle: {\n fill: Theme.uncheckedColor,\n stroke: Theme.uncheckedColor,\n },\n },\n inactive: {\n nameStyle: {\n fill: Theme.uncheckedColor,\n },\n markerStyle: {\n opacity: 0.2,\n },\n },\n },\n },\n };\n }\n\n // 实现 IList 接口\n public isList(): boolean {\n return true;\n }\n\n /**\n * 获取图例项\n * @return {ListItem[]} 列表项集合\n */\n public getItems(): ListItem[] {\n return this.get('items');\n }\n\n /**\n * 设置列表项\n * @param {ListItem[]} items 列表项集合\n */\n public setItems(items: ListItem[]) {\n this.update({\n items,\n });\n }\n\n /**\n * 更新列表项\n * @param {ListItem} item 列表项\n * @param {object} cfg 列表项\n */\n public updateItem(item: ListItem, cfg: object) {\n mix(item, cfg);\n this.clear(); // 由于单个图例项变化,会引起全局变化,所以全部更新\n this.render();\n }\n\n /**\n * 清空列表\n */\n public clearItems() {\n const itemGroup = this.getElementByLocalId('item-group');\n itemGroup && itemGroup.clear();\n }\n\n /**\n * 设置列表项的状态\n * @param {ListItem} item 列表项\n * @param {string} state 状态名\n * @param {boolean} value 状态值, true, false\n */\n public setItemState(item: ListItem, state: string, value: boolean) {\n item[state] = value;\n const itemElement = this.getElementByLocalId(`item-${item.id}`);\n if (itemElement) {\n const items = this.getItems();\n const index = items.indexOf(item);\n const offsetGroup = this.createOffScreenGroup(); // 离屏的 group\n const newElement = this.drawItem(item, index, this.getItemHeight(), offsetGroup);\n this.updateElements(newElement, itemElement); // 更新整个分组\n this.clearUpdateStatus(itemElement); // 清理更新状态,防止出现 bug\n }\n }\n /**\n * 是否存在指定的状态\n * @param {ListItem} item 列表项\n * @param {boolean} state 状态名\n */\n public hasState(item: ListItem, state: string): boolean {\n return !!item[state];\n }\n\n public getItemStates(item: ListItem): string[] {\n const itemStates = this.get('itemStates');\n const rst = [];\n each(itemStates, (v, k) => {\n if (item[k]) {\n // item.selected\n rst.push(k);\n }\n });\n return rst;\n }\n\n /**\n * 清楚所有列表项的状态\n * @param {string} state 状态值\n */\n public clearItemsState(state: string) {\n const items = this.getItemsByState(state);\n each(items, (item) => {\n this.setItemState(item, state, false);\n });\n }\n\n /**\n * 根据状态获取图例项\n * @param {string} state [description]\n * @return {ListItem[]} [description]\n */\n public getItemsByState(state: string): ListItem[] {\n const items = this.getItems();\n return filter(items, (item) => {\n return this.hasState(item, state);\n });\n }\n\n // 绘制 legend 的选项\n protected drawLegendContent(group) {\n this.processItems();\n this.drawItems(group);\n }\n\n // 防止未设置 id\n private processItems() {\n const items = this.get('items');\n each(items, (item) => {\n if (!item.id) {\n // 如果没有设置 id,默认使用 name\n item.id = item.name;\n }\n });\n }\n\n // 绘制所有的图例选项\n private drawItems(group: IGroup) {\n const itemContainerGroup = this.addGroup(group, {\n id: this.getElementId('item-container-group'),\n name: 'legend-item-container-group',\n });\n const itemGroup = this.addGroup(itemContainerGroup, {\n id: this.getElementId('item-group'),\n name: 'legend-item-group',\n });\n const itemHeight = this.getItemHeight();\n const itemWidth = this.get('itemWidth');\n const itemSpacing = this.get('itemSpacing');\n const itemMarginBottom = this.get('itemMarginBottom');\n const currentPoint = this.get('currentPoint');\n const startX = currentPoint.x;\n const startY = currentPoint.y;\n const layout = this.get('layout');\n const items = this.get('items');\n let wrapped = false;\n let pageWidth = 0;\n\n const maxWidth = this.get('maxWidth'); // 最大宽度,会导致 layout : 'horizontal' 时自动换行\n const maxHeight = this.get('maxHeight'); // 最大高度,会导致出现分页\n // 暂时不考虑分页\n each(items, (item, index) => {\n const subGroup = this.drawItem(item, index, itemHeight, itemGroup);\n const bbox = subGroup.getBBox();\n const width = itemWidth || bbox.width;\n if (width > pageWidth) {\n pageWidth = width;\n }\n if (layout === 'horizontal') {\n // 如果水平布局\n if (maxWidth && maxWidth < currentPoint.x + width - startX) {\n // 检测是否换行\n wrapped = true;\n currentPoint.x = startX;\n currentPoint.y += itemHeight + itemMarginBottom;\n }\n this.moveElementTo(subGroup, currentPoint);\n currentPoint.x += width + itemSpacing;\n } else {\n // 如果垂直布局\n if (maxHeight && maxHeight < currentPoint.y + itemHeight + itemMarginBottom - startY) {\n // 换行\n wrapped = true;\n currentPoint.x += pageWidth + itemSpacing;\n currentPoint.y = startY;\n pageWidth = 0;\n }\n this.moveElementTo(subGroup, currentPoint);\n currentPoint.y += itemHeight + itemMarginBottom; // itemSpacing 仅影响水平间距\n }\n });\n\n if (wrapped && this.get('flipPage')) {\n this.pageHeight = 0;\n this.pageWidth = 0;\n this.totalPagesCnt = 1;\n this.startX = startX;\n this.startY = startY;\n this.adjustNavigation(group, itemGroup);\n }\n }\n // 获取图例项的高度,如果未定义,则按照 name 的高度计算\n private getItemHeight() {\n let itemHeight = this.get('itemHeight');\n if (!itemHeight) {\n const { style }: LegendItemNameCfg = this.get('itemName') || {};\n\n if (isFunction(style)) {\n const items = this.getItems();\n items.forEach((item, index) => {\n const { fontSize } = { ...textStyle, ...style(item, index, items) };\n if (itemHeight < fontSize) {\n itemHeight = fontSize;\n }\n });\n } else if (style) {\n itemHeight = style.fontSize;\n }\n }\n return itemHeight;\n }\n // 绘制 marker\n private drawMarker(container: IGroup, markerCfg: LegendMarkerCfg, item: ListItem, itemHeight: number) {\n const markerAttrs = {\n x: 0,\n y: itemHeight / 2,\n ...markerCfg.style,\n symbol: get(item.marker, 'symbol', 'circle'),\n ...get(item.marker, 'style', {}),\n };\n\n const shape = this.addShape(container, {\n type: 'marker',\n id: this.getElementId(`item-${item.id}-marker`),\n name: 'legend-item-marker',\n attrs: markerAttrs,\n });\n const bbox = shape.getBBox();\n shape.attr('x', bbox.width / 2); // marker 需要左对齐,所以不能占用左侧的空间\n\n const { stroke, fill } = shape.attr();\n if (stroke) {\n shape.set('isStroke', true);\n }\n if (fill) {\n shape.set('isFill', true);\n }\n\n return shape;\n }\n // 绘制文本\n private drawItemText(\n container: IGroup,\n textName: string,\n cfg: LegendItemNameCfg,\n item: ListItem,\n itemHeight: number,\n xPosition: number,\n index: number\n ) {\n const formatter = cfg.formatter;\n const { style } = cfg;\n\n const attrs = {\n x: xPosition,\n y: itemHeight / 2,\n text: formatter ? formatter(item[textName], item, index) : item[textName],\n ...textStyle,\n ...(isFunction(style) ? style(item, index, this.getItems()) : style),\n };\n\n return this.addShape(container, {\n type: 'text',\n id: this.getElementId(`item-${item.id}-${textName}`),\n name: `legend-item-${textName}`,\n attrs,\n });\n }\n\n private drawRadio(container: IGroup, radioCfg: LegendRadio, item: ListItem, itemHeight: number, x: number) {\n const style = radioCfg.style || {};\n // 以用户设置的 r 为主\n const r = style.r ?? itemHeight / 2;\n const lineWidth = (r * 3.6) / 8;\n const [x0, y0] = [x + r, itemHeight / 2 - r];\n const [x1, y1] = [x0 + r, y0 + r];\n const [x2, y2] = [x0, y1 + r];\n const [x3, y3] = [x, y0 + r];\n const { showRadio } = item;\n const attrs = {\n path: [\n ['M', x0, y0],\n ['A', r, r, 0, 0, 1, x1, y1],\n ['L', x1 - lineWidth, y1],\n ['L', x1, y1],\n ['A', r, r, 0, 0, 1, x2, y2],\n ['L', x2, y2 - lineWidth],\n ['L', x2, y2],\n ['A', r, r, 0, 0, 1, x3, y3],\n ['L', x3 + lineWidth, y3],\n ['L', x3, y3],\n ['A', r, r, 0, 0, 1, x0, y0],\n ['L', x0, y0 + lineWidth],\n ],\n stroke: '#000000',\n fill: '#ffffff',\n ...style,\n opacity: showRadio ? (style?.opacity ?? 0.45) : 0,\n };\n\n const radioShape = this.addShape(container, {\n type: 'path',\n id: this.getElementId(`item-${item.id}-radio`),\n name: 'legend-item-radio',\n attrs,\n });\n radioShape.set('tip', radioCfg.tip);\n return radioShape;\n }\n\n // 绘制图例项\n private drawItem(item: ListItem, index: number, itemHeight: number, itemGroup: IGroup) {\n const groupId = `item-${item.id}`;\n // 设置单独的 Group 用于 setClip\n const subContainer = this.addGroup(itemGroup, {\n name: 'legend-item-container',\n id: this.getElementId(`item-container-${groupId}`),\n delegateObject: {\n item,\n index,\n },\n });\n const subGroup = this.addGroup(subContainer, {\n name: 'legend-item',\n id: this.getElementId(groupId),\n delegateObject: {\n item,\n index,\n },\n });\n const marker = this.get('marker');\n const itemName = this.get('itemName');\n const itemValue = this.get('itemValue');\n const itemBackground = this.get('itemBackground');\n const radio = this.get('radio');\n const itemWidth = this.getLimitItemWidth();\n\n let curX = 0; // 记录当前 x 的位置\n if (marker) {\n const markerShape = this.drawMarker(subGroup, marker, item, itemHeight);\n let spacing = marker.spacing;\n const itemMarkerSpacing = get(item, ['marker', 'spacing']);\n\n if (isNumber(itemMarkerSpacing)) {\n // 如果 item 有配置 marker.spacing,采用 item 的配置\n spacing = itemMarkerSpacing;\n }\n\n curX = markerShape.getBBox().maxX + spacing;\n }\n\n if (itemName) {\n const nameShape = this.drawItemText(subGroup, 'name', itemName, item, itemHeight, curX, index);\n if (itemWidth) {\n // 设置了 item 的最大宽度限制,并且超出了,进行省略处理\n ellipsisLabel(true, nameShape, clamp(itemWidth - curX, 0, itemWidth));\n }\n curX = nameShape.getBBox().maxX + itemName.spacing;\n }\n\n if (itemValue) {\n const valueShape = this.drawItemText(subGroup, 'value', itemValue, item, itemHeight, curX, index);\n if (itemWidth) {\n if (itemValue.alignRight) {\n valueShape.attr({\n textAlign: 'right',\n x: itemWidth,\n });\n ellipsisLabel(true, valueShape, clamp(itemWidth - curX, 0, itemWidth), 'head');\n } else {\n ellipsisLabel(true, valueShape, clamp(itemWidth - curX, 0, itemWidth));\n }\n }\n curX = valueShape.getBBox().maxX + itemValue.spacing;\n }\n\n if (radio) {\n this.drawRadio(subGroup, radio, item, itemHeight, curX);\n }\n\n // 添加透明的背景,便于拾取和包围盒计算\n if (itemBackground) {\n const bbox = subGroup.getBBox();\n const backShape = this.addShape(subGroup, {\n type: 'rect',\n name: 'legend-item-background',\n id: this.getElementId(`${groupId}-background`),\n attrs: {\n x: 0,\n y: 0,\n width: bbox.width,\n height: itemHeight,\n ...itemBackground.style,\n },\n });\n backShape.toBack();\n }\n\n this.applyItemStates(item, subGroup);\n return subGroup;\n }\n\n // 加上分页器并重新排序 items\n private adjustNavigation(container: IGroup, itemGroup: IGroup) {\n const startX = this.startX;\n const startY = this.startY;\n const layout = this.get('layout');\n const subGroups = itemGroup.findAll((item) => item.get('name') === 'legend-item');\n const maxWidth = this.get('maxWidth');\n const maxHeight = this.get('maxHeight');\n const itemWidth = this.get('itemWidth');\n const itemSpacing = this.get('itemSpacing');\n const itemHeight = this.getItemHeight();\n const pageNavigator: LegendPageNavigatorCfg = deepMix({}, DEFAULT_PAGE_NAVIGATOR, this.get('pageNavigator'));\n const navigation = this.drawNavigation(container, layout, '00/00', pageNavigator);\n const navigationBBox = navigation.getBBox();\n const currentPoint = { x: startX, y: startY };\n let pages = 1;\n let widthLimit = 0;\n let pageWidth = 0;\n let maxItemWidth = 0;\n const itemMarginBottom = this.get('itemMarginBottom');\n\n /** 判断当前 item 是否溢出当前页。是的话,需要换行 */\n function shouldWrap(item, currentPoint) {\n const bbox = item.getBBox();\n const width = itemWidth || bbox.width;\n const newItemXPos = currentPoint.x + width + itemSpacing + navigationBBox.width;\n return newItemXPos > maxWidth;\n }\n\n if (layout === 'horizontal') {\n const maxRow = this.get('maxRow') || 1;\n const maxRowHeight = itemHeight + (maxRow === 1 ? 0 : itemMarginBottom);\n // 分页器一直靠右上角\n const navigationX = maxWidth - itemSpacing - navigationBBox.width - navigationBBox.minX; // 理论上不需要减 navigationBBox.minX\n this.pageHeight = maxRowHeight * maxRow;\n this.pageWidth = navigationX;\n each(subGroups, (item) => {\n const bbox = item.getBBox();\n const width = itemWidth || bbox.width;\n if ((widthLimit && widthLimit < currentPoint.x + width + itemSpacing) ||\n shouldWrap(item, currentPoint)) {\n if (pages === 1) {\n widthLimit = currentPoint.x + itemSpacing;\n this.moveElementTo(navigation, {\n x: navigationX,\n y: currentPoint.y + itemHeight / 2 - navigationBBox.height / 2 - navigationBBox.minY,\n });\n }\n pages += 1;\n currentPoint.x = startX;\n currentPoint.y += maxRowHeight;\n }\n this.moveElementTo(item, currentPoint);\n item.getParent().setClip({\n type: 'rect',\n attrs: {\n x: currentPoint.x,\n y: currentPoint.y,\n width: width + itemSpacing,\n height: itemHeight,\n },\n });\n currentPoint.x += width + itemSpacing;\n });\n } else {\n each(subGroups, (item) => {\n const bbox = item.getBBox();\n if (bbox.width > pageWidth) {\n pageWidth = bbox.width;\n }\n });\n maxItemWidth = pageWidth;\n pageWidth += itemSpacing;\n if (maxWidth) {\n // maxWidth 限制加上\n pageWidth = Math.min(maxWidth, pageWidth);\n maxItemWidth = Math.min(maxWidth, maxItemWidth);\n }\n this.pageWidth = pageWidth;\n this.pageHeight = maxHeight - Math.max(navigationBBox.height, itemHeight + itemMarginBottom);\n const cntPerPage = Math.floor(this.pageHeight / (itemHeight + itemMarginBottom));\n each(subGroups, (item, index) => {\n if (index !== 0 && index % cntPerPage === 0) {\n pages += 1;\n currentPoint.x += pageWidth;\n currentPoint.y = startY;\n }\n this.moveElementTo(item, currentPoint);\n item.getParent().setClip({\n type: 'rect',\n attrs: {\n x: currentPoint.x,\n y: currentPoint.y,\n width: pageWidth,\n height: itemHeight,\n },\n });\n currentPoint.y += itemHeight + itemMarginBottom;\n });\n this.totalPagesCnt = pages;\n this.moveElementTo(navigation, {\n x: startX + maxItemWidth / 2 - navigationBBox.width / 2 - navigationBBox.minX,\n y: maxHeight - navigationBBox.height - navigationBBox.minY,\n });\n }\n\n if (this.pageHeight && this.pageWidth) {\n // 为了使固定的 clip 生效,clip 设置在 itemContainerGroup 上,itemGroup 需要在翻页时会设置 matrix\n itemGroup.getParent().setClip({\n type: 'rect',\n attrs: {\n x: this.startX,\n y: this.startY,\n width: this.pageWidth,\n height: this.pageHeight,\n },\n });\n }\n // 重新计算 totalPagesCnt\n if (layout === 'horizontal' && this.get('maxRow')) {\n this.totalPagesCnt = Math.ceil(pages / this.get('maxRow'));\n } else {\n this.totalPagesCnt = pages;\n }\n if (this.currentPageIndex > this.totalPagesCnt) {\n this.currentPageIndex = 1;\n }\n this.updateNavigation(navigation);\n // update initial matrix\n itemGroup.attr('matrix', this.getCurrentNavigationMatrix());\n }\n\n /**\n * 绘制分页器\n */\n private drawNavigation(\n group: IGroup,\n layout: 'horizontal' | 'vertical',\n text: string,\n styleCfg?: LegendPageNavigatorCfg\n ) {\n const currentPoint = { x: 0, y: 0 };\n const subGroup = this.addGroup(group, {\n id: this.getElementId('navigation-group'),\n name: 'legend-navigation',\n });\n const { size = 12, ...arrowStyle } = get(styleCfg.marker, 'style', {});\n const leftArrow = this.drawArrow(\n subGroup,\n currentPoint,\n LEFT_ARROW_NAME,\n layout === 'horizontal' ? 'up' : 'left',\n size,\n arrowStyle\n );\n leftArrow.on('click', this.onNavigationBack);\n const leftArrowBBox = leftArrow.getBBox();\n currentPoint.x += leftArrowBBox.width + 2;\n\n const textShape = this.addShape(subGroup, {\n type: 'text',\n id: this.getElementId('navigation-text'),\n name: 'navigation-text',\n attrs: {\n x: currentPoint.x,\n y: currentPoint.y + size / 2,\n text,\n textBaseline: 'middle',\n ...get(styleCfg.text, 'style'),\n },\n });\n const textBBox = textShape.getBBox();\n currentPoint.x += textBBox.width + 2;\n\n const rightArrow = this.drawArrow(\n subGroup,\n currentPoint,\n RIGHT_ARROW_NAME,\n layout === 'horizontal' ? 'down' : 'right',\n size,\n arrowStyle\n );\n rightArrow.on('click', this.onNavigationAfter);\n\n return subGroup;\n }\n\n private updateNavigation(navigation?: IGroup) {\n const pageNavigator: LegendPageNavigatorCfg = deepMix({}, DEFAULT_PAGE_NAVIGATOR, this.get('pageNavigator'));\n const { fill, opacity, inactiveFill, inactiveOpacity } = pageNavigator.marker.style;\n\n const text = `${this.currentPageIndex}/${this.totalPagesCnt}`;\n const textShape = navigation ? navigation.getChildren()[1] : this.getElementByLocalId('navigation-text');\n const leftArrow = navigation\n ? navigation.findById(this.getElementId(LEFT_ARROW_NAME))\n : this.getElementByLocalId(LEFT_ARROW_NAME);\n const rightArrow = navigation\n ? navigation.findById(this.getElementId(RIGHT_ARROW_NAME))\n : this.getElementByLocalId(RIGHT_ARROW_NAME);\n textShape.attr('text', text);\n // 更新 left-arrow marker\n leftArrow.attr('opacity', this.currentPageIndex === 1 ? inactiveOpacity : opacity);\n leftArrow.attr('fill', this.currentPageIndex === 1 ? inactiveFill : fill);\n leftArrow.attr('cursor', this.currentPageIndex === 1 ? 'not-allowed' : 'pointer');\n // 更新 right-arrow marker\n rightArrow.attr('opacity', this.currentPageIndex === this.totalPagesCnt ? inactiveOpacity : opacity);\n rightArrow.attr('fill', this.currentPageIndex === this.totalPagesCnt ? inactiveFill : fill);\n rightArrow.attr('cursor', this.currentPageIndex === this.totalPagesCnt ? 'not-allowed' : 'pointer');\n // 更新位置\n let cursorX = leftArrow.getBBox().maxX + 2;\n textShape.attr('x', cursorX);\n cursorX += textShape.getBBox().width + 2;\n this.updateArrowPath(rightArrow, { x: cursorX, y: 0 });\n\n }\n\n private drawArrow(\n group: IGroup,\n currentPoint: { x: number; y: number },\n name: string,\n direction: 'left' | 'right' | 'up' | 'down',\n size: number,\n style?: LegendPageNavigatorCfg['marker']['style']\n ) {\n const { x, y } = currentPoint;\n const shape = this.addShape(group, {\n type: 'path',\n id: this.getElementId(name),\n name,\n attrs: {\n size,\n direction,\n path: [['M', x + size / 2, y], ['L', x, y + size], ['L', x + size, y + size], ['Z']],\n cursor: 'pointer',\n ...style,\n },\n });\n shape.attr('matrix', getMatrixByAngle({ x: x + size / 2, y: y + size / 2 }, ROTATE_MAP[direction]));\n\n return shape;\n }\n\n /**\n * 更新分页器 arrow 组件\n */\n private updateArrowPath(arrow: IShape, point: { x: number; y: number }): void {\n const { x, y } = point;\n const { size, direction } = arrow.attr();\n let matrix = getMatrixByAngle({ x: x + size / 2, y: y + size / 2 }, ROTATE_MAP[direction]);\n arrow.attr('path', [['M', x + size / 2, y], ['L', x, y + size], ['L', x + size, y + size], ['Z']]);\n arrow.attr('matrix', matrix);\n }\n\n private getCurrentNavigationMatrix() {\n const { currentPageIndex, pageWidth, pageHeight } = this;\n const layout = this.get('layout');\n const translate =\n layout === 'horizontal'\n ? {\n x: 0,\n y: pageHeight * (1 - currentPageIndex),\n }\n : {\n x: pageWidth * (1 - currentPageIndex),\n y: 0,\n };\n\n return getMatrixByTranslate(translate);\n }\n\n private onNavigationBack = () => {\n const itemGroup = this.getElementByLocalId('item-group');\n if (this.currentPageIndex > 1) {\n this.currentPageIndex -= 1;\n this.updateNavigation();\n const matrix = this.getCurrentNavigationMatrix();\n if (this.get('animate')) {\n itemGroup.animate(\n {\n matrix,\n },\n 100\n );\n } else {\n itemGroup.attr({ matrix });\n }\n }\n };\n\n private onNavigationAfter = () => {\n const itemGroup = this.getElementByLocalId('item-group');\n if (this.currentPageIndex < this.totalPagesCnt) {\n this.currentPageIndex += 1;\n this.updateNavigation();\n const matrix = this.getCurrentNavigationMatrix();\n if (this.get('animate')) {\n itemGroup.animate(\n {\n matrix,\n },\n 100\n );\n } else {\n itemGroup.attr({ matrix });\n }\n }\n };\n\n // 附加状态对应的样式\n private applyItemStates(item: ListItem, subGroup: IGroup) {\n const states = this.getItemStates(item);\n const hasStates = states.length > 0;\n if (hasStates) {\n const children = subGroup.getChildren();\n const itemStates = this.get('itemStates');\n each(children, (element) => {\n const name = element.get('name');\n const elName = name.split('-')[2]; // marker, name, value\n const statesStyle = getStatesStyle(item, elName, itemStates);\n if (statesStyle) {\n element.attr(statesStyle);\n if (elName === 'marker' && !(element.get('isStroke') && element.get('isFill'))) {\n // 如果 marker 是单填充或者单描边的话,就不要额外添加 stroke 或这 fill 属性,否则会影响 unchecked 后的显示\n if (element.get('isStroke')) {\n element.attr('fill', null);\n }\n if (element.get('isFill')) {\n element.attr('stroke', null);\n }\n }\n }\n });\n }\n }\n\n // 获取 itemWidth 的最终设置\n private getLimitItemWidth() {\n const itemWidth = this.get('itemWidth');\n let maxItemWidth = this.get('maxItemWidth');\n\n if (maxItemWidth) {\n // 设置了最大宽度\n if (itemWidth) {\n maxItemWidth = itemWidth <= maxItemWidth ? itemWidth : maxItemWidth;\n }\n } else if (itemWidth) {\n maxItemWidth = itemWidth;\n }\n\n return maxItemWidth;\n }\n}\n\nexport default Category;\n","import { IElement, IGroup } from '@antv/g-base';\nimport { clone, isFunction, mix, upperFirst } from '@antv/util';\nimport { ISlider } from '../interfaces';\nimport { BBox, ContinueLegendCfg } from '../types';\nimport Theme from '../util/theme';\nimport { getValueByPercent } from '../util/util';\nimport LegendBase from './base';\nconst HANDLER_HEIGHT_RATIO = 1.4;\nconst HANDLER_TRIANGLE_RATIO = 0.4;\n\nclass ContinueLegend extends LegendBase implements ISlider {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n type: 'continue',\n min: 0,\n max: 100,\n value: null,\n colors: [],\n track: {},\n rail: {},\n label: {},\n handler: {},\n slidable: true,\n tip: null,\n step: null,\n maxWidth: null,\n maxHeight: null,\n defaultCfg: {\n label: {\n align: 'rail',\n spacing: 5, // 文本和 rail 的间距\n formatter: null,\n style: {\n fontSize: 12,\n fill: Theme.textColor,\n textBaseline: 'middle',\n fontFamily: Theme.fontFamily,\n },\n },\n handler: {\n size: 10, // handler 的默认宽度\n style: {\n fill: '#fff',\n stroke: '#333',\n },\n },\n track: {},\n rail: {\n type: 'color',\n size: 20,\n defaultLength: 100,\n style: {\n fill: '#DCDEE2',\n },\n },\n title: {\n spacing: 5,\n style: {\n fill: Theme.textColor,\n fontSize: 12,\n textAlign: 'start',\n textBaseline: 'top',\n },\n },\n },\n };\n }\n\n public isSlider() {\n return true;\n }\n\n // 实现 IList 接口\n public getValue() {\n return this.getCurrentValue();\n }\n\n public getRange() {\n return {\n min: this.get('min'),\n max: this.get('max'),\n };\n }\n\n // 改变 range\n public setRange(min, max) {\n this.update({\n min,\n max,\n });\n }\n\n public setValue(value: number[]) {\n const originValue = this.getValue();\n this.set('value', value);\n const group = this.get('group');\n this.resetTrackClip();\n if (this.get('slidable')) {\n this.resetHandlers(group);\n }\n this.delegateEmit('valuechanged', {\n originValue,\n value,\n });\n }\n\n protected initEvent() {\n const group = this.get('group');\n this.bindSliderEvent(group);\n this.bindRailEvent(group);\n this.bindTrackEvent(group);\n }\n\n protected drawLegendContent(group: IGroup) {\n this.drawRail(group);\n this.drawLabels(group);\n this.fixedElements(group); // 调整各个图形位置,适应宽高的限制\n this.resetTrack(group);\n this.resetTrackClip(group);\n if (this.get('slidable')) {\n this.resetHandlers(group);\n }\n }\n\n private bindSliderEvent(group) {\n this.bindHandlersEvent(group);\n }\n\n private bindHandlersEvent(group) {\n group.on('legend-handler-min:drag', (ev) => {\n const minValue = this.getValueByCanvasPoint(ev.x, ev.y);\n const currentValue = this.getCurrentValue();\n let maxValue = currentValue[1];\n if (maxValue < minValue) {\n // 如果小于最小值,则调整最小值\n maxValue = minValue;\n }\n this.setValue([minValue, maxValue]);\n });\n group.on('legend-handler-max:drag', (ev) => {\n const maxValue = this.getValueByCanvasPoint(ev.x, ev.y);\n const currentValue = this.getCurrentValue();\n let minValue = currentValue[0];\n if (minValue > maxValue) {\n // 如果小于最小值,则调整最小值\n minValue = maxValue;\n }\n this.setValue([minValue, maxValue]);\n });\n }\n\n private bindRailEvent(group) {}\n\n private bindTrackEvent(group) {\n let prePoint = null;\n group.on('legend-track:dragstart', (ev) => {\n prePoint = {\n x: ev.x,\n y: ev.y,\n };\n });\n group.on('legend-track:drag', (ev) => {\n if (!prePoint) {\n return;\n }\n const preValue = this.getValueByCanvasPoint(prePoint.x, prePoint.y);\n const curValue = this.getValueByCanvasPoint(ev.x, ev.y);\n const currentValue = this.getCurrentValue();\n const curDiff = currentValue[1] - currentValue[0];\n const range = this.getRange();\n const dValue = curValue - preValue;\n if (dValue < 0) {\n // 减小, 同时未出边界\n if (currentValue[0] + dValue > range.min) {\n this.setValue([currentValue[0] + dValue, currentValue[1] + dValue]);\n } else {\n this.setValue([range.min, range.min + curDiff]);\n }\n // && ||\n } else if (dValue > 0) {\n if (dValue > 0 && currentValue[1] + dValue < range.max) {\n this.setValue([currentValue[0] + dValue, currentValue[1] + dValue]);\n } else {\n this.setValue([range.max - curDiff, range.max]);\n }\n }\n prePoint = {\n x: ev.x,\n y: ev.y,\n };\n });\n group.on('legend-track:dragend', (ev) => {\n prePoint = null;\n });\n }\n\n private drawLabels(group: IGroup) {\n this.drawLabel('min', group);\n this.drawLabel('max', group);\n }\n\n private drawLabel(name, group: IGroup) {\n const labelCfg = this.get('label');\n const style = labelCfg.style;\n const labelAlign = labelCfg.align;\n const labelFormatter = labelCfg.formatter;\n const value = this.get(name);\n const alignAttrs = this.getLabelAlignAttrs(name, labelAlign);\n const localId = `label-${name}`;\n this.addShape(group, {\n type: 'text',\n id: this.getElementId(localId),\n name: `legend-label-${name}`,\n attrs: {\n x: 0,\n y: 0,\n text: isFunction(labelFormatter) ? labelFormatter(value) : value,\n ...style,\n ...alignAttrs,\n },\n });\n }\n\n // 获取文本的对齐方式,为了自适应真实操碎了心\n private getLabelAlignAttrs(name, align) {\n const isVertical = this.isVertical();\n let textAlign = 'center';\n let textBaseline = 'middle';\n if (isVertical) {\n // 垂直布局的所有的文本都左对齐\n textAlign = 'start';\n if (align !== 'rail') {\n if (name === 'min') {\n textBaseline = 'top';\n } else {\n textBaseline = 'bottom';\n }\n } else {\n textBaseline = 'top';\n }\n } else {\n if (align !== 'rail') {\n textBaseline = 'top';\n if (name === 'min') {\n textAlign = 'start';\n } else {\n textAlign = 'end';\n }\n } else {\n textAlign = 'start';\n textBaseline = 'middle';\n }\n }\n return {\n textAlign,\n textBaseline,\n };\n }\n\n private getRailPath(x: number, y: number, w?: number, h?: number) {\n const railCfg = this.get('rail');\n const { size, defaultLength, type } = railCfg;\n const isVertical = this.isVertical();\n const length = defaultLength;\n let width = w;\n let height = h;\n if (!width) {\n width = isVertical ? size : length;\n }\n if (!height) {\n height = isVertical ? length : size;\n }\n const path = [];\n if (type === 'color') {\n path.push(['M', x, y]);\n path.push(['L', x + width, y]);\n path.push(['L', x + width, y + height]);\n path.push(['L', x, y + height]);\n path.push(['Z']);\n } else {\n path.push(['M', x + width, y]);\n path.push(['L', x + width, y + height]);\n path.push(['L', x, y + height]);\n path.push(['Z']);\n }\n return path;\n }\n\n private drawRail(group: IGroup) {\n const railCfg = this.get('rail');\n const style = railCfg.style;\n this.addShape(group, {\n type: 'path',\n id: this.getElementId('rail'),\n name: 'legend-rail',\n attrs: {\n path: this.getRailPath(0, 0),\n ...style,\n },\n });\n }\n\n // 将传入的颜色转换成渐变色\n private getTrackColor(colors) {\n const count = colors.length;\n if (!count) {\n return null;\n }\n if (count === 1) {\n return colors[0];\n }\n let color; // 最终形态 l(0) 0:colors[0] 0.5:colors[1] 1:colors[2];\n if (this.isVertical()) {\n // 根据方向设置渐变方向\n color = 'l(90)';\n } else {\n color = 'l(0)';\n }\n for (let i = 0; i < count; i++) {\n const percent = i / (count - 1);\n color += ` ${percent}:${colors[i]}`;\n }\n return color;\n }\n\n private getTrackPath(group?: IGroup) {\n const railShape = this.getRailShape(group);\n const path = railShape.attr('path');\n return clone(path);\n }\n\n private getClipTrackAttrs(group?: IGroup) {\n const value = this.getCurrentValue();\n const [min, max] = value;\n const railBBox = this.getRailBBox(group);\n const startPoint = this.getPointByValue(min, group);\n const endPoint = this.getPointByValue(max, group);\n const isVertical = this.isVertical();\n let x;\n let y;\n let width;\n let height;\n if (isVertical) {\n x = railBBox.minX;\n y = startPoint.y;\n width = railBBox.width;\n height = endPoint.y - startPoint.y;\n } else {\n x = startPoint.x;\n y = railBBox.minY;\n width = endPoint.x - startPoint.x;\n height = railBBox.height;\n }\n return {\n x,\n y,\n width,\n height,\n };\n }\n\n // 获取 track 的属性,由 path 和 颜色构成\n private getTrackAttrs(group?: IGroup) {\n const trackCfg = this.get('track');\n const colors = this.get('colors');\n const path = this.getTrackPath(group);\n return mix(\n {\n path,\n fill: this.getTrackColor(colors),\n },\n trackCfg.style\n );\n }\n\n private resetTrackClip(group?: IGroup) {\n const container = group || (this.get('group') as IGroup);\n const trackId = this.getElementId('track');\n const trackShape = container.findById(trackId);\n const clipShape = trackShape.getClip();\n const attrs = this.getClipTrackAttrs(group);\n if (!clipShape) {\n trackShape.setClip({\n type: 'rect',\n attrs,\n });\n } else {\n clipShape.attr(attrs);\n }\n }\n\n private resetTrack(group: IGroup) {\n const trackId = this.getElementId('track');\n const trackShape = group.findById(trackId);\n const trackAttrs = this.getTrackAttrs(group);\n if (trackShape) {\n trackShape.attr(trackAttrs);\n } else {\n this.addShape(group, {\n type: 'path',\n id: trackId,\n draggable: this.get('slidable'),\n name: 'legend-track',\n attrs: trackAttrs,\n });\n }\n }\n\n private getPointByValue(value, group?: IGroup) {\n const { min, max } = this.getRange();\n const percent = (value - min) / (max - min);\n const bbox = this.getRailBBox(group);\n const isVertcal = this.isVertical();\n const point = { x: 0, y: 0 };\n if (isVertcal) {\n point.x = bbox.minX + bbox.width / 2;\n point.y = getValueByPercent(bbox.minY, bbox.maxY, percent);\n } else {\n point.x = getValueByPercent(bbox.minX, bbox.maxX, percent);\n point.y = bbox.minY + bbox.height / 2;\n }\n return point;\n }\n\n private getRailShape(group?: IGroup) {\n const container = group || (this.get('group') as IGroup);\n return container.findById(this.getElementId('rail'));\n }\n\n // 获取滑轨的宽高信息\n private getRailBBox(group?: IGroup): BBox {\n const railShape = this.getRailShape(group);\n const bbox = railShape.getBBox();\n return bbox;\n }\n\n private getRailCanvasBBox(): BBox {\n const container = this.get('group');\n const railShape = container.findById(this.getElementId('rail'));\n const bbox = railShape.getCanvasBBox();\n return bbox;\n }\n\n // 是否垂直\n private isVertical(): boolean {\n return this.get('layout') === 'vertical';\n }\n\n // 用于交互时\n private getValueByCanvasPoint(x, y) {\n const { min, max } = this.getRange();\n const bbox = this.getRailCanvasBBox(); // 因为 x, y 是画布坐标\n const isVertcal = this.isVertical();\n const step = this.get('step');\n let percent;\n if (isVertcal) {\n // 垂直时计算 y\n percent = (y - bbox.minY) / bbox.height;\n } else {\n // 水平时计算 x\n percent = (x - bbox.minX) / bbox.width;\n }\n let value = getValueByPercent(min, max, percent);\n if (step) {\n const count = Math.round((value - min) / step);\n value = min + count * step; // 移动到最近的\n }\n if (value > max) {\n value = max;\n }\n if (value < min) {\n value = min;\n }\n return value;\n }\n\n // 当前选中的范围\n private getCurrentValue(): number[] {\n const value = this.get('value');\n if (!value) {\n const values = this.get('values');\n if (!values) {\n return [this.get('min'), this.get('max')];\n }\n // 如果没有定义,取最大范围 最小值 为 values 中的最小值, 如果最小值 超过了 定义的最大值 则 做限制 最大值 反之\n return [Math.max(Math.min(...values, this.get('max')), this.get('min')), Math.min(Math.max(...values, this.get('min')), this.get('max'))];\n }\n return value;\n }\n\n // 重置滑块 handler\n private resetHandlers(group: IGroup) {\n const currentValue = this.getCurrentValue();\n const [min, max] = currentValue;\n this.resetHandler(group, 'min', min);\n this.resetHandler(group, 'max', max);\n }\n // 获取滑块的 path\n private getHandlerPath(handlerCfg, point) {\n const isVertical = this.isVertical();\n const path = [];\n const width = handlerCfg.size;\n const { x, y } = point;\n const height = width * HANDLER_HEIGHT_RATIO;\n const halfWidth = width / 2;\n const oneSixthWidth = width / 6;\n if (isVertical) {\n /**\n * 竖直情况下的滑块 handler,左侧顶点是 x,y\n * /----|\n * -- |\n * -- |\n * \\----|\n */\n const triangleX = x + height * HANDLER_TRIANGLE_RATIO;\n path.push(['M', x, y]);\n path.push(['L', triangleX, y + halfWidth]);\n path.push(['L', x + height, y + halfWidth]);\n path.push(['L', x + height, y - halfWidth]);\n path.push(['L', triangleX, y - halfWidth]);\n path.push(['Z']);\n // 绘制两条横线\n path.push(['M', triangleX, y + oneSixthWidth]);\n path.push(['L', x + height - 2, y + oneSixthWidth]);\n path.push(['M', triangleX, y - oneSixthWidth]);\n path.push(['L', x + height - 2, y - oneSixthWidth]);\n } else {\n /**\n * 水平情况下的滑块,上面顶点处是 x,y\n * / \\\n * | | | |\n * | | | |\n * -----\n */\n const triangleY = y + height * HANDLER_TRIANGLE_RATIO;\n path.push(['M', x, y]);\n path.push(['L', x - halfWidth, triangleY]);\n path.push(['L', x - halfWidth, y + height]);\n path.push(['L', x + halfWidth, y + height]);\n path.push(['L', x + halfWidth, triangleY]);\n path.push(['Z']);\n // 绘制两条竖线\n path.push(['M', x - oneSixthWidth, triangleY]);\n path.push(['L', x - oneSixthWidth, y + height - 2]);\n path.push(['M', x + oneSixthWidth, triangleY]);\n path.push(['L', x + oneSixthWidth, y + height - 2]);\n }\n return path;\n }\n\n // 调整 handler 的位置,如果未存在则绘制\n private resetHandler(group: IGroup, name, value) {\n const point = this.getPointByValue(value, group);\n const handlerCfg = this.get('handler');\n const path = this.getHandlerPath(handlerCfg, point);\n const id = this.getElementId(`handler-${name}`);\n const handlerShape = group.findById(id);\n const isVertical = this.isVertical();\n if (handlerShape) {\n handlerShape.attr('path', path);\n } else {\n this.addShape(group, {\n type: 'path',\n name: `legend-handler-${name}`,\n draggable: true, // 可拖拽\n id,\n attrs: {\n path,\n ...handlerCfg.style,\n cursor: isVertical ? 'ns-resize' : 'ew-resize',\n },\n });\n }\n }\n\n // 当设置了 maxWidth, maxHeight 时调整 rail 的宽度,\n // 文本的位置\n private fixedElements(group: IGroup) {\n const railShape = group.findById(this.getElementId('rail'));\n const minLabel = group.findById(this.getElementId('label-min'));\n const maxLabel = group.findById(this.getElementId('label-max'));\n const startPoint = this.getDrawPoint();\n if (this.isVertical()) {\n // 横向布局\n this.fixedVertail(minLabel, maxLabel, railShape, startPoint);\n } else {\n // 水平布局\n this.fixedHorizontal(minLabel, maxLabel, railShape, startPoint);\n }\n }\n\n private fitRailLength(minLabelBBox, maxLabelBBox, railBBox, railShape) {\n const isVertical = this.isVertical();\n const lengthField = isVertical ? 'height' : 'width';\n const labelCfg = this.get('label');\n const labelAlign = labelCfg.align;\n const spacing = labelCfg.spacing;\n const maxLength = this.get(`max${upperFirst(lengthField)}`); // get('maxWidth')\n if (maxLength) {\n const elementsLength =\n labelAlign === 'rail'\n ? railBBox[lengthField] + minLabelBBox[lengthField] + maxLabelBBox[lengthField] + spacing * 2\n : railBBox[lengthField];\n const diff = elementsLength - maxLength;\n if (diff > 0) {\n // 大于限制的长度\n this.changeRailLength(railShape, lengthField, railBBox[lengthField] - diff);\n }\n }\n }\n\n private changeRailLength(railShape, lengthField, length) {\n const bbox = railShape.getBBox();\n let path;\n if (lengthField === 'height') {\n path = this.getRailPath(bbox.x, bbox.y, bbox.width, length);\n } else {\n path = this.getRailPath(bbox.x, bbox.y, length, bbox.height);\n }\n railShape.attr('path', path);\n }\n\n private changeRailPosition(railShape, x, y) {\n const bbox = railShape.getBBox();\n const path = this.getRailPath(x, y, bbox.width, bbox.height);\n railShape.attr('path', path);\n }\n\n private fixedHorizontal(minLabel: IElement, maxLabel: IElement, railShape: IElement, startPoint) {\n const labelCfg = this.get('label');\n const labelAlign = labelCfg.align;\n const spacing = labelCfg.spacing;\n let railBBox = railShape.getBBox();\n const minLabelBBox = minLabel.getBBox();\n const maxLabelBBox = maxLabel.getBBox();\n const railHeight = railBBox.height; // 取 rail 的高度,作为高度\n this.fitRailLength(minLabelBBox, maxLabelBBox, railBBox, railShape);\n railBBox = railShape.getBBox();\n if (labelAlign === 'rail') {\n // 沿着 rail 方向\n minLabel.attr({\n x: startPoint.x,\n y: startPoint.y + railHeight / 2,\n });\n this.changeRailPosition(railShape, startPoint.x + minLabelBBox.width + spacing, startPoint.y);\n maxLabel.attr({\n x: startPoint.x + minLabelBBox.width + railBBox.width + spacing * 2,\n y: startPoint.y + railHeight / 2,\n });\n } else if (labelAlign === 'top') {\n minLabel.attr({\n x: startPoint.x,\n y: startPoint.y,\n });\n maxLabel.attr({\n x: startPoint.x + railBBox.width,\n y: startPoint.y,\n });\n this.changeRailPosition(railShape, startPoint.x, startPoint.y + minLabelBBox.height + spacing);\n } else {\n this.changeRailPosition(railShape, startPoint.x, startPoint.y);\n minLabel.attr({\n x: startPoint.x,\n y: startPoint.y + railBBox.height + spacing,\n });\n maxLabel.attr({\n x: startPoint.x + railBBox.width,\n y: startPoint.y + railBBox.height + spacing,\n });\n }\n }\n\n private fixedVertail(minLabel: IElement, maxLabel: IElement, railShape: IElement, startPoint) {\n const labelCfg = this.get('label');\n const labelAlign = labelCfg.align;\n const spacing = labelCfg.spacing;\n let railBBox = railShape.getBBox();\n const minLabelBBox = minLabel.getBBox();\n const maxLabelBBox = maxLabel.getBBox();\n this.fitRailLength(minLabelBBox, maxLabelBBox, railBBox, railShape);\n railBBox = railShape.getBBox();\n\n if (labelAlign === 'rail') {\n // 沿着 rail 方向\n minLabel.attr({\n x: startPoint.x,\n y: startPoint.y,\n });\n this.changeRailPosition(railShape, startPoint.x, startPoint.y + minLabelBBox.height + spacing);\n maxLabel.attr({\n x: startPoint.x,\n y: startPoint.y + minLabelBBox.height + railBBox.height + spacing * 2,\n });\n } else if (labelAlign === 'right') {\n minLabel.attr({\n x: startPoint.x + railBBox.width + spacing,\n y: startPoint.y,\n });\n this.changeRailPosition(railShape, startPoint.x, startPoint.y);\n maxLabel.attr({\n x: startPoint.x + railBBox.width + spacing,\n y: startPoint.y + railBBox.height,\n });\n } else {\n // left\n const maxLabelWidth = Math.max(minLabelBBox.width, maxLabelBBox.width);\n minLabel.attr({\n x: startPoint.x,\n y: startPoint.y,\n });\n this.changeRailPosition(railShape, startPoint.x + maxLabelWidth + spacing, startPoint.y);\n maxLabel.attr({\n x: startPoint.x,\n y: startPoint.y + railBBox.height,\n });\n }\n }\n}\n\nexport default ContinueLegend;\n","export const CONTAINER_CLASS = 'g2-tooltip';\nexport const TITLE_CLASS = 'g2-tooltip-title';\nexport const LIST_CLASS = 'g2-tooltip-list';\nexport const LIST_ITEM_CLASS = 'g2-tooltip-list-item';\nexport const MARKER_CLASS = 'g2-tooltip-marker';\nexport const VALUE_CLASS = 'g2-tooltip-value';\nexport const NAME_CLASS = 'g2-tooltip-name';\nexport const CROSSHAIR_X = 'g2-tooltip-crosshair-x';\nexport const CROSSHAIR_Y = 'g2-tooltip-crosshair-y';\n","import Theme from '../util/theme';\n\n// tooltip 相关 dom 的 css 类名\nimport * as CssConst from './css-const';\n\nexport default {\n // css style for tooltip\n [`${CssConst.CONTAINER_CLASS}`]: {\n position: 'absolute',\n visibility: 'visible',\n // @2018-07-25 by blue.lb 这里去掉浮动,火狐上存在样式错位\n // whiteSpace: 'nowrap',\n zIndex: 8,\n transition:\n 'visibility 0.2s cubic-bezier(0.23, 1, 0.32, 1), ' +\n 'left 0.4s cubic-bezier(0.23, 1, 0.32, 1), ' +\n 'top 0.4s cubic-bezier(0.23, 1, 0.32, 1)',\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n boxShadow: '0px 0px 10px #aeaeae',\n borderRadius: '3px',\n color: 'rgb(87, 87, 87)',\n fontSize: '12px',\n fontFamily: Theme.fontFamily,\n lineHeight: '20px',\n padding: '10px 10px 6px 10px',\n },\n [`${CssConst.TITLE_CLASS}`]: {\n marginBottom: '4px',\n },\n [`${CssConst.LIST_CLASS}`]: {\n margin: '0px',\n listStyleType: 'none',\n padding: '0px',\n },\n [`${CssConst.LIST_ITEM_CLASS}`]: {\n listStyleType: 'none',\n marginBottom: '4px',\n },\n [`${CssConst.MARKER_CLASS}`]: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n display: 'inline-block',\n marginRight: '8px',\n },\n [`${CssConst.VALUE_CLASS}`]: {\n display: 'inline-block',\n float: 'right',\n marginLeft: '30px',\n },\n [`${CssConst.CROSSHAIR_X}`]: {\n position: 'absolute',\n width: '1px',\n backgroundColor: 'rgba(0, 0, 0, 0.25)',\n },\n [`${CssConst.CROSSHAIR_Y}`]: {\n position: 'absolute',\n height: '1px',\n backgroundColor: 'rgba(0, 0, 0, 0.25)',\n },\n};\n","import colorUtil from '@antv/color-util';\nimport { createDom, modifyCSS } from '@antv/dom-util';\nimport { each, hasKey, isElement, substitute } from '@antv/util';\nimport HtmlComponent from '../abstract/html-component';\nimport { Point, PointLocationCfg } from '../types';\nimport { TooltipCfg } from '../types';\nimport { clearDom, regionToBBox, toPx } from '../util/util';\nimport * as CssConst from './css-const';\nimport TooltipTheme from './html-theme';\n\nimport { ILocation } from '../interfaces';\nimport { getAlignPoint } from '../util/align';\n\nfunction hasOneKey(obj, keys) {\n let result = false;\n each(keys, (key) => {\n if (hasKey(obj, key)) {\n result = true;\n return false;\n }\n });\n return result;\n}\n\nclass Tooltip extends HtmlComponent implements ILocation {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'tooltip',\n type: 'html',\n x: 0,\n y: 0,\n items: [],\n customContent: null,\n containerTpl: `
    `,\n itemTpl: `
  • \n \n {name}:\n {value}\n
  • `,\n xCrosshairTpl: `
    `,\n yCrosshairTpl: `
    `,\n title: null,\n showTitle: true,\n /**\n * tooltip 限制的区域\n * @type {Region}\n */\n region: null,\n // crosshair 的限制区域\n crosshairsRegion: null,\n containerClassName: CssConst.CONTAINER_CLASS,\n // x, y, xy\n crosshairs: null,\n offset: 10,\n position: 'right',\n domStyles: null,\n defaultStyles: TooltipTheme,\n };\n }\n\n // tooltip 渲染时,渲染 title,items 和 corosshairs\n public render() {\n if (this.get('customContent')) {\n this.renderCustomContent();\n } else {\n this.resetTitle();\n this.renderItems();\n }\n // 绘制完成后,再定位\n this.resetPosition();\n }\n\n // 复写清空函数,因为有模板的存在,所以默认的写法不合适\n public clear() {\n // 由于 crosshair 没有在 container 内,所以需要单独清理\n this.clearCrosshairs();\n this.setTitle(''); // 清空标题\n this.clearItemDoms();\n }\n\n public show() {\n const container = this.getContainer();\n if (!container || this.destroyed) {\n // 防止容器不存在或者被销毁时报错\n return;\n }\n this.set('visible', true);\n modifyCSS(container, {\n visibility: 'visible',\n });\n this.setCrossHairsVisible(true);\n }\n\n public hide() {\n const container = this.getContainer();\n // relative: https://github.com/antvis/g2/issues/1221\n if (!container || this.destroyed) {\n return;\n }\n this.set('visible', false);\n modifyCSS(container, {\n visibility: 'hidden',\n });\n this.setCrossHairsVisible(false);\n }\n\n // 实现 IPointLocation 的接口\n public getLocation() {\n return { x: this.get('x'), y: this.get('y') };\n }\n // 实现 IPointLocation 的接口\n public setLocation(point: Point) {\n this.set('x', point.x);\n this.set('y', point.y);\n this.resetPosition();\n }\n\n public setCrossHairsVisible(visible) {\n const display = visible ? '' : 'none';\n const xCrosshairDom = this.get('xCrosshairDom');\n const yCrosshairDom = this.get('yCrosshairDom');\n xCrosshairDom &&\n modifyCSS(xCrosshairDom, {\n display,\n });\n yCrosshairDom &&\n modifyCSS(yCrosshairDom, {\n display,\n });\n }\n\n // 如有 customContent 则根据 customContent 设置 container\n protected initContainer() {\n super.initContainer();\n if (this.get('customContent')) {\n if (this.get('container')) {\n this.get('container').remove();\n }\n const container = this.getHtmlContentNode();\n this.get('parent').appendChild(container);\n this.set('container', container);\n this.resetStyles();\n this.applyStyles();\n }\n }\n\n // 更新属性的同时,可能会引起 DOM 的变化,这里对可能引起 DOM 变化的场景做了处理\n protected updateInner(cfg: Partial) {\n if (this.get('customContent')) {\n this.renderCustomContent();\n } else {\n // 更新标题\n if (hasOneKey(cfg, ['title', 'showTitle'])) {\n this.resetTitle();\n }\n // 更新内容\n if (hasKey(cfg, 'items')) {\n this.renderItems();\n }\n }\n super.updateInner(cfg);\n }\n\n protected initDom() {\n this.cacheDoms();\n }\n // 清理 DOM\n protected removeDom() {\n super.removeDom();\n this.clearCrosshairs();\n }\n // 调整位置\n protected resetPosition() {\n const x = this.get('x');\n const y = this.get('y');\n const offset = this.get('offset');\n const { offsetX, offsetY } = this.getOffset();\n const position = this.get('position');\n const region = this.get('region');\n const container = this.getContainer();\n const bbox = this.getBBox();\n const { width, height } = bbox;\n let limitBox;\n if (region) {\n // 不限制位置\n limitBox = regionToBBox(region);\n }\n const point = getAlignPoint(x, y, offset, width, height, position, limitBox);\n modifyCSS(container, {\n left: toPx(point.x + offsetX),\n top: toPx(point.y + offsetY),\n });\n this.resetCrosshairs();\n }\n\n // 根据 customContent 渲染\n private renderCustomContent() {\n const node = this.getHtmlContentNode();\n const parent: HTMLElement = this.get('parent');\n const curContainer: HTMLElement = this.get('container');\n if (curContainer && curContainer.parentNode === parent) {\n parent.replaceChild(node, curContainer);\n } else {\n parent.appendChild(node);\n }\n this.set('container', node);\n this.resetStyles();\n this.applyStyles();\n }\n\n private getHtmlContentNode() {\n let node: HTMLElement | undefined;\n const customContent = this.get('customContent');\n if (customContent) {\n const elem = customContent(this.get('title'), this.get('items'));\n if (isElement(elem)) {\n node = elem as HTMLElement;\n } else {\n node = createDom(elem);\n }\n }\n return node;\n }\n\n // 缓存模板设置的各种 DOM\n private cacheDoms() {\n const container = this.getContainer();\n const titleDom = container.getElementsByClassName(CssConst.TITLE_CLASS)[0];\n const listDom = container.getElementsByClassName(CssConst.LIST_CLASS)[0];\n this.set('titleDom', titleDom);\n this.set('listDom', listDom);\n }\n\n // 重置 title\n private resetTitle() {\n const title = this.get('title');\n const showTitle = this.get('showTitle');\n if (showTitle && title) {\n this.setTitle(title);\n } else {\n this.setTitle('');\n }\n }\n // 设置 title 文本\n private setTitle(text) {\n const titleDom = this.get('titleDom');\n if (titleDom) {\n titleDom.innerText = text;\n }\n }\n // 终止 crosshair\n private resetCrosshairs() {\n const crosshairsRegion = this.get('crosshairsRegion');\n const crosshairs = this.get('crosshairs');\n if (!crosshairsRegion || !crosshairs) {\n // 不显示 crosshair,都移除,没有设定 region 也都移除掉\n this.clearCrosshairs();\n } else {\n const crosshairBox = regionToBBox(crosshairsRegion);\n const xCrosshairDom = this.get('xCrosshairDom');\n const yCrosshairDom = this.get('yCrosshairDom');\n if (crosshairs === 'x') {\n this.resetCrosshair('x', crosshairBox);\n // 仅显示 x 的 crosshair,y 移除\n if (yCrosshairDom) {\n yCrosshairDom.remove();\n this.set('yCrosshairDom', null);\n }\n } else if (crosshairs === 'y') {\n this.resetCrosshair('y', crosshairBox);\n // 仅显示 y 的 crosshair,x 移除\n if (xCrosshairDom) {\n xCrosshairDom.remove();\n this.set('xCrosshairDom', null);\n }\n } else {\n this.resetCrosshair('x', crosshairBox);\n this.resetCrosshair('y', crosshairBox);\n }\n this.setCrossHairsVisible(this.get('visible'));\n }\n }\n // 设定 crosshair 的位置,需要区分 x,y\n private resetCrosshair(name: string, bbox) {\n const croshairDom = this.checkCrosshair(name);\n const value = this.get(name);\n if (name === 'x') {\n modifyCSS(croshairDom, {\n left: toPx(value),\n top: toPx(bbox.y),\n height: toPx(bbox.height),\n });\n } else {\n modifyCSS(croshairDom, {\n top: toPx(value),\n left: toPx(bbox.x),\n width: toPx(bbox.width),\n });\n }\n }\n\n // 如果 crosshair 对应的 dom 不存在,则创建\n private checkCrosshair(name: string) {\n const domName = `${name}CrosshairDom`;\n const tplName = `${name}CrosshairTpl`;\n const constName = `CROSSHAIR_${name.toUpperCase()}`;\n const styleName = CssConst[constName];\n let croshairDom = this.get(domName);\n const parent = this.get('parent') as HTMLElement;\n if (!croshairDom) {\n croshairDom = createDom(this.get(tplName)); // 创建\n this.applyStyle(styleName, croshairDom); // 设置初始样式\n parent.appendChild(croshairDom); // 添加到跟 tooltip 同级的目录下\n this.set(domName, croshairDom);\n }\n return croshairDom;\n }\n\n private renderItems() {\n this.clearItemDoms();\n const items = this.get('items');\n const itemTpl = this.get('itemTpl');\n const listDom = this.get('listDom');\n if (listDom) {\n each(items, (item) => {\n const color = colorUtil.toCSSGradient(item.color);\n const substituteObj = {\n ...item,\n color,\n };\n\n const domStr = substitute(itemTpl, substituteObj);\n const itemDom = createDom(domStr);\n listDom.appendChild(itemDom);\n });\n this.applyChildrenStyles(listDom, this.get('domStyles'));\n }\n }\n\n private clearItemDoms() {\n if (this.get('listDom')) {\n clearDom(this.get('listDom'));\n }\n }\n\n private clearCrosshairs() {\n const xCrosshairDom = this.get('xCrosshairDom');\n const yCrosshairDom = this.get('yCrosshairDom');\n xCrosshairDom && xCrosshairDom.remove();\n yCrosshairDom && yCrosshairDom.remove();\n this.set('xCrosshairDom', null);\n this.set('yCrosshairDom', null);\n }\n}\n\nexport default Tooltip;\n","import { BBox, Point } from '../types';\n\ninterface OutSides {\n left: boolean;\n right: boolean;\n top: boolean;\n bottom: boolean;\n}\n\n// 检测各边是否超出\nexport function getOutSides(x: number, y: number, width: number, height: number, limitBox: BBox): OutSides {\n const hits = {\n left: x < limitBox.x,\n right: x + width > limitBox.x + limitBox.width,\n top: y < limitBox.y,\n bottom: y + height > limitBox.y + limitBox.height,\n };\n return hits;\n}\n\nexport function getPointByPosition(\n x: number,\n y: number,\n offset: number,\n width: number,\n height: number,\n position: string\n): Point {\n let px = x;\n let py = y;\n switch (position) {\n case 'left': // left center\n px = x - width - offset;\n py = y - height / 2;\n break;\n case 'right':\n px = x + offset;\n py = y - height / 2;\n break;\n case 'top':\n px = x - width / 2;\n py = y - height - offset;\n break;\n case 'bottom':\n // bottom\n px = x - width / 2;\n py = y + offset;\n break;\n default:\n // auto, 在 top-right\n px = x + offset;\n py = y - height - offset;\n break;\n }\n\n return {\n x: px,\n y: py,\n };\n}\n\nexport function getAlignPoint(\n x: number,\n y: number,\n offset: number,\n width: number,\n height: number,\n position: string,\n limitBox?: BBox\n): Point {\n const point = getPointByPosition(x, y, offset, width, height, position);\n if (limitBox) {\n const outSides = getOutSides(point.x, point.y, width, height, limitBox);\n if (position === 'auto') {\n // 如果是 auto,默认 tooltip 在右上角,仅需要判定右侧和上测冲突即可\n if (outSides.right) {\n point.x = Math.max(0, x - width - offset);\n }\n if (outSides.top) {\n point.y = Math.max(0, y - height - offset);\n }\n } else if (position === 'top' || position === 'bottom') {\n if (outSides.left) {\n // 左侧躲避\n point.x = limitBox.x;\n }\n if (outSides.right) {\n // 右侧躲避\n point.x = limitBox.x + limitBox.width - width;\n }\n if (position === 'top' && outSides.top) {\n // 如果上面对齐检测上面,不检测下面\n point.y = y + offset;\n }\n if (position === 'bottom' && outSides.bottom) {\n point.y = y - height - offset;\n }\n } else {\n // 检测左右位置\n if (outSides.top) {\n point.y = limitBox.y;\n }\n if (outSides.bottom) {\n point.y = limitBox.y + limitBox.height - height;\n }\n if (position === 'left' && outSides.left) {\n point.x = x + offset;\n }\n if (position === 'right' && outSides.right) {\n point.x = x - width - offset;\n }\n }\n }\n return point;\n}\n","export const BACKGROUND_STYLE = {\n // fill: 'red',\n opacity: 0,\n};\n\nexport const LINE_STYLE = {\n stroke: '#C5C5C5',\n strokeOpacity: 0.85,\n};\n\nexport const AREA_STYLE = {\n fill: '#CACED4',\n opacity: 0.85,\n};\n","import { catmullRom2Bezier } from '@antv/path-util';\nimport { Category, Linear } from '@antv/scale';\nimport { each, head, isEqual, map } from '@antv/util';\n\ntype Point = [number, number];\n\n/**\n * 点数组转 path\n * @param points\n */\nfunction pointsToPath(points: Point[]): any[][] {\n return map(points, (p: Point, idx: number) => {\n const command = idx === 0 ? 'M' : 'L';\n const [x, y] = p;\n return [command, x, y];\n });\n}\n\n/**\n * 将点连接成路径 path\n * @param points\n */\nexport function getLinePath(points: Point[]): any[][] {\n return pointsToPath(points);\n}\n\n/**\n * 将点连成平滑的曲线\n * @param points\n */\nexport function getSmoothLinePath(points: Point[]): any[][] {\n if (points.length <= 2) {\n // 两点以内直接绘制成路径\n return getLinePath(points);\n }\n\n const data = [];\n\n each(points, (p) => {\n // 当前点和上一个点一样的时候,忽略掉\n if (!isEqual(p, data.slice(data.length - 2))) {\n data.push(p[0], p[1]);\n }\n });\n\n // const constraint = [ // 范围\n // [ 0, 0 ],\n // [ 1, 1 ],\n // ];\n const path = catmullRom2Bezier(data, false);\n const [x, y] = head(points);\n path.unshift(['M', x, y]);\n\n return path;\n}\n\n/**\n * 将数据转成 path,利用 scale 的归一化能力\n * @param data\n * @param width\n * @param height\n * @param smooth\n */\nexport function dataToPath(data: number[], width: number, height: number, smooth: boolean = true): any[][] {\n // 利用 scale 来获取 y 上的映射\n const y = new Linear({\n values: data,\n });\n\n const x = new Category({\n values: map(data, (v, idx) => idx),\n });\n\n const points = map(data, (v: number, idx: number) => {\n return [x.scale(idx) * width, height - y.scale(v) * height] as [number, number];\n });\n\n return smooth ? getSmoothLinePath(points) : getLinePath(points);\n}\n\n/**\n * 获得 area 面积的横向连接线的 px 位置\n * @param data \n * @param width \n * @param height \n */\nexport function getAreaLineY(data: number[], height: number): number {\n const y = new Linear({\n values: data,\n });\n // 当曲线全部为负数时,取最大值,当曲线全部为正数时,取最小值,当曲线有正有负,则取零点\n const lineY = y.max < 0 ? y.max : Math.max(0, y.min);\n return height - y.scale(lineY) * height;\n}\n\n/**\n * 线 path 转 area path\n * @param path\n * @param width\n * @param height\n */\nexport function linePathToAreaPath(path: any[][], width: number, height: number, data: number[]): any[][] {\n const areaPath = [...path];\n\n const lineYPx = getAreaLineY(data, height);\n\n areaPath.push(['L', width, lineYPx]);\n areaPath.push(['L', 0, lineYPx]);\n areaPath.push(['Z']);\n\n return areaPath;\n}\n","import { IGroup } from '@antv/g-base';\nimport GroupComponent from '../abstract/group-component';\nimport { GroupComponentCfg } from '../types';\nimport { AREA_STYLE, BACKGROUND_STYLE, LINE_STYLE } from './constant';\nimport { dataToPath, linePathToAreaPath } from './path';\n\nexport interface TrendCfg extends GroupComponentCfg {\n // 位置大小\n readonly x?: number;\n readonly y?: number;\n readonly width?: number;\n readonly height?: number;\n // 数据\n readonly data?: number[];\n // 样式\n readonly smooth?: boolean;\n readonly isArea?: boolean;\n readonly backgroundStyle?: object;\n readonly lineStyle?: object;\n readonly areaStyle?: object;\n}\n\nexport class Trend extends GroupComponent {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'trend',\n x: 0,\n y: 0,\n width: 200,\n height: 16,\n smooth: true,\n isArea: false,\n data: [],\n backgroundStyle: BACKGROUND_STYLE,\n lineStyle: LINE_STYLE,\n areaStyle: AREA_STYLE,\n };\n }\n\n protected renderInner(group: IGroup) {\n const { width, height, data, smooth, isArea, backgroundStyle, lineStyle, areaStyle } = this.cfg as TrendCfg;\n\n // 背景\n this.addShape(group, {\n id: this.getElementId('background'),\n type: 'rect',\n attrs: {\n x: 0,\n y: 0,\n width,\n height,\n ...backgroundStyle,\n },\n });\n\n const path = dataToPath(data, width, height, smooth);\n // 线\n this.addShape(group, {\n id: this.getElementId('line'),\n type: 'path',\n attrs: {\n path,\n ...lineStyle,\n },\n });\n\n // area\n // 在 path 的基础上,增加两个坐标点\n if (isArea) {\n const areaPath = linePathToAreaPath(path, width, height, data);\n this.addShape(group, {\n id: this.getElementId('area'),\n type: 'path',\n attrs: {\n path: areaPath,\n ...areaStyle,\n },\n });\n }\n }\n\n protected applyOffset() {\n const { x, y } = this.cfg as TrendCfg;\n\n // 统一移动到对应的位置\n this.moveElementTo(this.get('group'), {\n x,\n y,\n });\n }\n}\n\nexport default Trend;\n","import { IGroup } from '@antv/g-base';\nimport GroupComponent from '../abstract/group-component';\nimport { GroupComponentCfg } from '../types';\n\ninterface IStyle {\n fill?: string;\n stroke?: string;\n radius?: number;\n opacity?: number;\n cursor?: string;\n highLightFill?: string;\n}\n\nexport interface HandlerCfg extends GroupComponentCfg {\n // position size\n readonly x: number;\n readonly y: number;\n readonly width: number;\n readonly height: number;\n // style\n readonly style?: IStyle;\n}\n\nexport const DEFAULT_HANDLER_STYLE = {\n fill: '#F7F7F7',\n stroke: '#BFBFBF',\n radius: 2,\n opacity: 1,\n cursor: 'ew-resize',\n // 高亮的颜色\n highLightFill: '#FFF',\n};\n\nexport class Handler extends GroupComponent {\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'handler',\n x: 0,\n y: 0,\n width: 10,\n height: 24,\n style: DEFAULT_HANDLER_STYLE,\n };\n }\n protected renderInner(group: IGroup) {\n const { width, height, style } = this.cfg as HandlerCfg;\n const { fill, stroke, radius, opacity, cursor } = style;\n\n // 按钮框框\n this.addShape(group, {\n type: 'rect',\n id: this.getElementId('background'),\n attrs: {\n x: 0,\n y: 0,\n width,\n height,\n fill,\n stroke,\n radius,\n opacity,\n cursor,\n },\n });\n\n // 两根竖线\n const x1 = (1 / 3) * width;\n const x2 = (2 / 3) * width;\n\n const y1 = (1 / 4) * height;\n const y2 = (3 / 4) * height;\n\n this.addShape(group, {\n id: this.getElementId('line-left'),\n type: 'line',\n attrs: {\n x1,\n y1,\n x2: x1,\n y2,\n stroke,\n cursor,\n },\n });\n\n this.addShape(group, {\n id: this.getElementId('line-right'),\n type: 'line',\n attrs: {\n x1: x2,\n y1,\n x2,\n y2,\n stroke,\n cursor,\n },\n });\n }\n\n protected applyOffset() {\n this.moveElementTo(this.get('group'), {\n x: this.get('x'),\n y: this.get('y'),\n });\n }\n\n protected initEvent() {\n this.bindEvents();\n }\n\n private bindEvents() {\n this.get('group').on('mouseenter', () => {\n const { highLightFill } = this.get('style');\n this.getElementByLocalId('background').attr('fill', highLightFill);\n\n this.draw();\n });\n\n this.get('group').on('mouseleave', () => {\n const { fill } = this.get('style');\n this.getElementByLocalId('background').attr('fill', fill);\n\n this.draw();\n });\n }\n\n private draw() {\n const canvas = this.get('container').get('canvas');\n if (canvas) {\n canvas.draw();\n }\n }\n}\n\nexport default Handler;\n","/**\n * 一些默认的样式配置\n */\n\nexport const BACKGROUND_STYLE = {\n fill: '#416180',\n opacity: 0.05,\n};\n\nexport const FOREGROUND_STYLE = {\n fill: '#5B8FF9',\n opacity: 0.15,\n cursor: 'move',\n};\n\nexport const DEFAULT_HANDLER_WIDTH = 10;\n\nexport const HANDLER_STYLE = {\n width: DEFAULT_HANDLER_WIDTH,\n height: 24,\n};\n\nexport const TEXT_STYLE = {\n textBaseline: 'middle',\n fill: '#000',\n opacity: 0.45,\n};\n\nexport const SLIDER_CHANGE = 'sliderchange';\n","import { Event, IGroup, IShape } from '@antv/g-base';\nimport { clamp, deepMix, each, get, isArray, isNil, size } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { ISlider } from '../interfaces';\nimport { Trend } from '../trend/trend';\nimport { DEFAULT_HANDLER_STYLE, Handler, HandlerCfg } from './handler';\nimport { GroupComponentCfg, Range } from '../types';\nimport {\n BACKGROUND_STYLE,\n DEFAULT_HANDLER_WIDTH,\n FOREGROUND_STYLE,\n HANDLER_STYLE,\n SLIDER_CHANGE,\n TEXT_STYLE,\n} from './constant';\n\nexport interface TrendCfg {\n // 数据\n readonly data: number[];\n // 样式\n readonly smooth?: boolean;\n readonly isArea?: boolean;\n readonly backgroundStyle?: object;\n readonly lineStyle?: object;\n readonly areaStyle?: object;\n}\n\n/**\n * slider handler style 设置\n */\ntype HandlerStyle = HandlerCfg['style'] & {\n readonly width?: number;\n readonly height?: number;\n};\n\nexport interface SliderCfg extends GroupComponentCfg {\n // position size\n readonly x: number;\n readonly y: number;\n readonly width: number;\n readonly height: number;\n\n // style\n readonly trendCfg?: TrendCfg;\n readonly backgroundStyle?: any;\n readonly foregroundStyle?: any;\n readonly handlerStyle?: HandlerStyle;\n readonly textStyle?: any;\n // 允许滑动位置\n readonly minLimit?: number;\n readonly maxLimit?: number;\n // 初始位置\n readonly start?: number;\n readonly end?: number;\n // 滑块文本\n readonly minText?: string;\n readonly maxText?: string;\n}\n\nexport class Slider extends GroupComponent implements ISlider {\n public cfg: SliderCfg;\n\n private minHandler: Handler;\n private maxHandler: Handler;\n private trend: Trend;\n private currentTarget: string;\n private prevX: number;\n private prevY: number;\n\n public setRange(min: number, max: number) {\n this.set('minLimit', min);\n this.set('maxLimit', max);\n const oldStart = this.get('start');\n const oldEnd = this.get('end');\n const newStart = clamp(oldStart, min, max);\n const newEnd = clamp(oldEnd, min, max);\n if (!this.get('isInit') && (oldStart !== newStart || oldEnd !== newEnd)) {\n this.setValue([newStart, newEnd]);\n }\n }\n\n public getRange(): Range {\n return {\n min: this.get('minLimit') || 0,\n max: this.get('maxLimit') || 1,\n };\n }\n\n public setValue(value: number | number[]) {\n const range = this.getRange();\n if (isArray(value) && value.length === 2) {\n const originValue = [this.get('start'), this.get('end')];\n this.update({\n start: clamp(value[0], range.min, range.max),\n end: clamp(value[1], range.min, range.max),\n });\n if (!this.get('updateAutoRender')) {\n this.render();\n }\n this.delegateEmit('valuechanged', {\n originValue,\n value,\n });\n }\n }\n\n public getValue(): number | number[] {\n return [this.get('start'), this.get('end')];\n }\n\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'slider',\n x: 0,\n y: 0,\n width: 100,\n height: 16,\n backgroundStyle: {},\n foregroundStyle: {},\n handlerStyle: {},\n textStyle: {},\n defaultCfg: {\n backgroundStyle: BACKGROUND_STYLE,\n foregroundStyle: FOREGROUND_STYLE,\n handlerStyle: HANDLER_STYLE,\n textStyle: TEXT_STYLE,\n },\n };\n }\n\n public update(cfg: Partial) {\n const { start, end } = cfg;\n const validCfg = { ...cfg };\n if (!isNil(start)) {\n validCfg.start = clamp(start, 0, 1);\n }\n if (!isNil(end)) {\n validCfg.end = clamp(end, 0, 1);\n }\n super.update(validCfg);\n this.minHandler = this.getChildComponentById(this.getElementId('minHandler'));\n this.maxHandler = this.getChildComponentById(this.getElementId('maxHandler'));\n this.trend = this.getChildComponentById(this.getElementId('trend'));\n }\n\n public init() {\n this.set('start', clamp(this.get('start'), 0, 1));\n this.set('end', clamp(this.get('end'), 0, 1));\n super.init();\n }\n\n public render() {\n super.render();\n\n this.updateUI(\n this.getElementByLocalId('foreground'),\n this.getElementByLocalId('minText'),\n this.getElementByLocalId('maxText')\n );\n }\n\n protected renderInner(group: IGroup) {\n const {\n start,\n end,\n width,\n height,\n trendCfg = {},\n minText,\n maxText,\n backgroundStyle = {},\n foregroundStyle = {},\n textStyle = {},\n } = this.cfg;\n\n const handlerStyle = deepMix({}, DEFAULT_HANDLER_STYLE, this.cfg.handlerStyle);\n\n const min = start * width;\n const max = end * width;\n\n // 趋势图数据\n if (size(get(trendCfg, 'data'))) {\n this.trend = this.addComponent(group, {\n component: Trend,\n id: this.getElementId('trend'),\n x: 0,\n y: 0,\n width,\n height,\n ...trendCfg,\n });\n }\n\n // 1. 背景\n this.addShape(group, {\n id: this.getElementId('background'),\n type: 'rect',\n attrs: {\n x: 0,\n y: 0,\n width,\n height,\n ...backgroundStyle,\n },\n });\n\n // 2. 左右文字\n const minTextShape = this.addShape(group, {\n id: this.getElementId('minText'),\n type: 'text',\n attrs: {\n // x: 0,\n y: height / 2,\n textAlign: 'right',\n text: minText,\n silent: false,\n ...textStyle,\n },\n });\n\n const maxTextShape = this.addShape(group, {\n id: this.getElementId('maxText'),\n type: 'text',\n attrs: {\n // x: 0,\n y: height / 2,\n textAlign: 'left',\n text: maxText,\n silent: false,\n ...textStyle,\n },\n });\n\n // 3. 前景 选中背景框\n const foregroundShape = this.addShape(group, {\n id: this.getElementId('foreground'),\n name: 'foreground',\n type: 'rect',\n attrs: {\n // x: 0,\n y: 0,\n // width: 0,\n height,\n ...foregroundStyle,\n },\n });\n\n // 滑块相关的大小信息\n const handlerWidth = get(handlerStyle, 'width', DEFAULT_HANDLER_WIDTH);\n const handlerHeight = get(handlerStyle, 'height', 24);\n\n // 4. 左右滑块\n this.minHandler = this.addComponent(group, {\n component: Handler,\n id: this.getElementId('minHandler'),\n name: 'handler-min',\n x: 0,\n y: (height - handlerHeight) / 2,\n width: handlerWidth,\n height: handlerHeight,\n cursor: 'ew-resize',\n style: handlerStyle,\n });\n\n this.maxHandler = this.addComponent(group, {\n component: Handler,\n id: this.getElementId('maxHandler'),\n name: 'handler-max',\n x: 0,\n y: (height - handlerHeight) / 2,\n width: handlerWidth,\n height: handlerHeight,\n cursor: 'ew-resize',\n style: handlerStyle,\n });\n }\n\n protected applyOffset() {\n this.moveElementTo(this.get('group'), {\n x: this.get('x'),\n y: this.get('y'),\n });\n }\n\n protected initEvent() {\n this.bindEvents();\n }\n\n private updateUI(foregroundShape: IShape, minTextShape: IShape, maxTextShape: IShape) {\n const { start, end, width, minText, maxText, handlerStyle, height } = this.cfg as SliderCfg;\n const min = start * width;\n const max = end * width;\n\n if (this.trend) {\n this.trend.update({\n width,\n height,\n });\n if (!this.get('updateAutoRender')) {\n this.trend.render();\n }\n }\n\n // 1. foreground\n foregroundShape.attr('x', min);\n foregroundShape.attr('width', max - min);\n\n // 滑块相关的大小信息\n const handlerWidth = get(handlerStyle, 'width', DEFAULT_HANDLER_WIDTH);\n\n // 设置文本\n minTextShape.attr('text', minText);\n maxTextShape.attr('text', maxText);\n\n const [minAttrs, maxAttrs] = this._dodgeText([min, max], minTextShape, maxTextShape);\n // 2. 左侧滑块和文字位置\n if (this.minHandler) {\n this.minHandler.update({\n x: min - handlerWidth / 2,\n });\n if (!this.get('updateAutoRender')) {\n this.minHandler.render();\n }\n }\n each(minAttrs, (v, k) => minTextShape.attr(k, v));\n\n // 3. 右侧滑块和文字位置\n if (this.maxHandler) {\n this.maxHandler.update({\n x: max - handlerWidth / 2,\n });\n if (!this.get('updateAutoRender')) {\n this.maxHandler.render();\n }\n }\n each(maxAttrs, (v, k) => maxTextShape.attr(k, v));\n }\n\n private bindEvents() {\n const group: IGroup = this.get('group');\n\n group.on('handler-min:mousedown', this.onMouseDown('minHandler'));\n group.on('handler-min:touchstart', this.onMouseDown('minHandler'));\n\n // 2. 右滑块的滑动\n group.on('handler-max:mousedown', this.onMouseDown('maxHandler'));\n group.on('handler-max:touchstart', this.onMouseDown('maxHandler'));\n\n // 3. 前景选中区域\n const foreground = group.findById(this.getElementId('foreground'));\n foreground.on('mousedown', this.onMouseDown('foreground'));\n foreground.on('touchstart', this.onMouseDown('foreground'));\n }\n\n private onMouseDown = (target: string) => (e: Event) => {\n this.currentTarget = target;\n // 取出原生事件\n const event = e.originalEvent as MouseEvent;\n\n // 2. 存储当前点击位置\n event.stopPropagation();\n event.preventDefault();\n\n // 兼容移动端获取数据\n this.prevX = get(event, 'touches.0.pageX', event.pageX);\n this.prevY = get(event, 'touches.0.pageY', event.pageY);\n\n // 3. 开始滑动的时候,绑定 move 和 up 事件\n const containerDOM = this.getContainerDOM();\n\n containerDOM.addEventListener('mousemove', this.onMouseMove);\n containerDOM.addEventListener('mouseup', this.onMouseUp);\n containerDOM.addEventListener('mouseleave', this.onMouseUp);\n\n // 移动端事件\n containerDOM.addEventListener('touchmove', this.onMouseMove);\n containerDOM.addEventListener('touchend', this.onMouseUp);\n containerDOM.addEventListener('touchcancel', this.onMouseUp);\n };\n\n private onMouseMove = (event: MouseEvent) => {\n const { width } = this.cfg as SliderCfg;\n const originValue = [this.get('start'), this.get('end')];\n // 滑动过程中,计算偏移,更新滑块,然后 emit 数据出去\n event.stopPropagation();\n event.preventDefault();\n\n const x = get(event, 'touches.0.pageX', event.pageX);\n const y = get(event, 'touches.0.pageY', event.pageY);\n\n // 横向的 slider 只处理 x\n const offsetX = x - this.prevX;\n\n const offsetXRange = this.adjustOffsetRange(offsetX / width);\n\n // 更新 start end range 范围\n this.updateStartEnd(offsetXRange);\n // 更新 ui\n this.updateUI(\n this.getElementByLocalId('foreground'),\n this.getElementByLocalId('minText'),\n this.getElementByLocalId('maxText')\n );\n\n this.prevX = x;\n this.prevY = y;\n\n this.draw();\n\n // 因为存储的 start、end 可能不一定是按大小存储的,所以排序一下,对外是 end >= start\n this.emit(SLIDER_CHANGE, [this.get('start'), this.get('end')].sort());\n this.delegateEmit('valuechanged', {\n originValue,\n value: [this.get('start'), this.get('end')],\n });\n };\n\n private onMouseUp = () => {\n // 结束之后,取消绑定的事件\n if (this.currentTarget) {\n this.currentTarget = undefined;\n }\n\n const containerDOM = this.getContainerDOM();\n if (containerDOM) {\n containerDOM.removeEventListener('mousemove', this.onMouseMove);\n containerDOM.removeEventListener('mouseup', this.onMouseUp);\n // 防止滑动到 canvas 外部之后,状态丢失\n containerDOM.removeEventListener('mouseleave', this.onMouseUp);\n\n // 移动端事件\n containerDOM.removeEventListener('touchmove', this.onMouseMove);\n containerDOM.removeEventListener('touchend', this.onMouseUp);\n containerDOM.removeEventListener('touchcancel', this.onMouseUp);\n }\n };\n\n /**\n * 调整 offsetRange,因为一些范围的限制\n * @param offsetRange\n */\n private adjustOffsetRange(offsetRange: number): number {\n const { start, end } = this.cfg as SliderCfg;\n // 针对不同的滑动组件,处理的方式不同\n switch (this.currentTarget) {\n case 'minHandler': {\n const min = 0 - start;\n const max = 1 - start;\n\n return Math.min(max, Math.max(min, offsetRange));\n }\n case 'maxHandler': {\n const min = 0 - end;\n const max = 1 - end;\n\n return Math.min(max, Math.max(min, offsetRange));\n }\n case 'foreground': {\n const min = 0 - start;\n const max = 1 - end;\n\n return Math.min(max, Math.max(min, offsetRange));\n }\n }\n }\n\n private updateStartEnd(offsetRange: number) {\n let { start, end } = this.cfg as SliderCfg;\n // 操作不同的组件,反馈不一样\n switch (this.currentTarget) {\n case 'minHandler':\n start += offsetRange;\n break;\n case 'maxHandler':\n end += offsetRange;\n break;\n case 'foreground':\n start += offsetRange;\n end += offsetRange;\n break;\n }\n this.set('start', start);\n this.set('end', end);\n }\n\n /**\n * 调整 text 的位置,自动躲避\n * 根据位置,调整返回新的位置\n * @param range\n */\n private _dodgeText(range: [number, number], minTextShape, maxTextShape): [object, object] {\n const { handlerStyle, width } = this.cfg as SliderCfg;\n const PADDING = 2;\n const handlerWidth = get(handlerStyle, 'width', DEFAULT_HANDLER_WIDTH);\n\n let [min, max] = range;\n let sorted = false;\n\n // 如果交换了位置,则对应的 min max 也交互\n if (min > max) {\n [min, max] = [max, min];\n [minTextShape, maxTextShape] = [maxTextShape, minTextShape];\n sorted = true;\n }\n\n // 避让规则,优先显示在两侧,只有显示不下的时候,才显示在中间\n const minBBox = minTextShape.getBBox();\n const maxBBox = maxTextShape.getBBox();\n\n const minAttrs =\n minBBox.width > min - PADDING\n ? { x: min + handlerWidth / 2 + PADDING, textAlign: 'left' }\n : { x: min - handlerWidth / 2 - PADDING, textAlign: 'right' };\n\n const maxAttrs =\n maxBBox.width > width - max - PADDING\n ? { x: max - handlerWidth / 2 - PADDING, textAlign: 'right' }\n : { x: max + handlerWidth / 2 + PADDING, textAlign: 'left' };\n\n return !sorted ? [minAttrs, maxAttrs] : [maxAttrs, minAttrs];\n }\n\n public draw() {\n const container = this.get('container');\n const canvas = container && container.get('canvas');\n if (canvas) {\n canvas.draw();\n }\n }\n\n private getContainerDOM() {\n const container = this.get('container');\n const canvas = container && container.get('canvas');\n\n return canvas && canvas.get('container');\n }\n}\n\nexport default Slider;\n","export default function addEventListener(target: HTMLElement, eventType: string, callback: any) {\n if (target) {\n if (typeof target.addEventListener === 'function') {\n target.addEventListener(eventType, callback, false);\n return {\n remove() {\n target.removeEventListener(eventType, callback, false);\n },\n };\n // @ts-ignore\n } if (typeof target.attachEvent === 'function') {\n // @ts-ignore\n target.attachEvent('on' + eventType, callback);\n return {\n remove() {\n // @ts-ignore\n target.detachEvent('on' + eventType, callback);\n },\n };\n }\n }\n}\n","import { addEventListener } from '@antv/dom-util';\nimport { Event, IGroup } from '@antv/g-base';\nimport { clamp, deepMix, get, noop } from '@antv/util';\nimport GroupComponent from '../abstract/group-component';\nimport { ISlider } from '../interfaces';\nimport { GroupComponentCfg, Range } from '../types';\n\nexport interface ScrollbarStyle {\n trackColor: string;\n thumbColor: string;\n size: number;\n lineCap: string;\n}\n\nexport interface ScrollbarTheme {\n default?: Partial>;\n hover?: Pick, 'thumbColor'>;\n}\n\nconst DEFAULT_STYLE: ScrollbarStyle = {\n trackColor: 'rgba(0,0,0,0)',\n thumbColor: 'rgba(0,0,0,0.15)',\n size: 8,\n lineCap: 'round',\n};\n\nexport const DEFAULT_THEME: ScrollbarTheme = {\n // 默认样式\n default: DEFAULT_STYLE,\n // 鼠标 hover 的样式\n hover: {\n thumbColor: 'rgba(0,0,0,0.2)',\n },\n};\n\nexport interface ScrollbarCfg extends GroupComponentCfg {\n // scrollBar 的位置\n x: number;\n y: number;\n // 滚动条的布局,横向 | 纵向, 非必传,默认为 false(纵向)\n isHorizontal?: boolean;\n // 滑道长度,必传\n trackLen: number;\n // 滑块长度,必传\n thumbLen: number;\n // 滑块的最小长度,非必传,默认值为 20\n minThumbLen?: number;\n // 滑块相对滑道的偏移, 非必传,默认值为 0\n thumbOffset?: number;\n // 滚动条大小(横向代表高度,纵向代表宽度),优先级大于 theme\n size?: number;\n // 滚动条样式,非必传\n theme?: ScrollbarTheme;\n\n minLimit?: number;\n maxLimit?: number;\n}\n\nexport class Scrollbar extends GroupComponent implements ISlider {\n public cfg: ScrollbarCfg;\n // 通过拖拽开始的事件是 mousedown 还是 touchstart 来决定是移动端还是 pc 端\n private isMobile: boolean;\n private clearEvents = noop;\n private startPos: number;\n\n public setRange(min: number, max: number) {\n this.set('minLimit', min);\n this.set('maxLimit', max);\n const curValue = this.getValue();\n const newValue = clamp(curValue, min, max);\n if (curValue !== newValue && !this.get('isInit')) {\n this.setValue(newValue);\n }\n }\n\n public getRange(): Range {\n const min: number = this.get('minLimit') || 0;\n const max: number = this.get('maxLimit') || 1;\n\n return { min, max };\n }\n\n public setValue(value: number) {\n const range = this.getRange();\n const originalValue = this.getValue();\n this.update({\n thumbOffset: (this.get('trackLen') - this.get('thumbLen')) * clamp(value, range.min, range.max),\n });\n this.delegateEmit('valuechange', {\n originalValue,\n value: this.getValue(),\n });\n }\n\n public getValue(): number {\n return clamp(this.get('thumbOffset') / (this.get('trackLen') - this.get('thumbLen')), 0, 1);\n }\n\n public getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n return {\n ...cfg,\n name: 'scrollbar',\n isHorizontal: true,\n minThumbLen: 20,\n thumbOffset: 0,\n theme: DEFAULT_THEME,\n };\n }\n\n protected renderInner(group: IGroup) {\n this.renderTrackShape(group);\n this.renderThumbShape(group);\n }\n\n protected applyOffset() {\n this.moveElementTo(this.get('group'), {\n x: this.get('x'),\n y: this.get('y'),\n });\n }\n\n protected initEvent() {\n this.bindEvents();\n }\n\n // 创建滑道的 shape\n private renderTrackShape(group: IGroup) {\n const { trackLen, theme = { default: {} } } = this.cfg;\n const { lineCap, trackColor, size: themeSize } = deepMix({}, DEFAULT_THEME, theme).default;\n const size = get(this.cfg, 'size', themeSize);\n\n const attrs = this.get('isHorizontal')\n ? {\n x1: 0 + size / 2,\n y1: size / 2,\n x2: trackLen - size / 2,\n y2: size / 2,\n lineWidth: size,\n stroke: trackColor,\n lineCap,\n }\n : {\n x1: size / 2,\n y1: 0 + size / 2,\n x2: size / 2,\n y2: trackLen - size / 2,\n lineWidth: size,\n stroke: trackColor,\n lineCap,\n };\n return this.addShape(group, {\n id: this.getElementId('track'),\n name: 'track',\n type: 'line',\n attrs,\n });\n }\n\n // 创建滑块的 shape\n private renderThumbShape(group: IGroup) {\n const { thumbOffset, thumbLen, theme } = this.cfg;\n const { size: themeSize, lineCap, thumbColor } = deepMix({}, DEFAULT_THEME, theme).default;\n const size = get(this.cfg, 'size', themeSize);\n\n const attrs = this.get('isHorizontal')\n ? {\n x1: thumbOffset + size / 2,\n y1: size / 2,\n x2: thumbOffset + thumbLen - size / 2,\n y2: size / 2,\n lineWidth: size,\n stroke: thumbColor,\n lineCap,\n cursor: 'default',\n }\n : {\n x1: size / 2,\n y1: thumbOffset + size / 2,\n x2: size / 2,\n y2: thumbOffset + thumbLen - size / 2,\n lineWidth: size,\n stroke: thumbColor,\n lineCap,\n cursor: 'default',\n };\n return this.addShape(group, {\n id: this.getElementId('thumb'),\n name: 'thumb',\n type: 'line',\n attrs,\n });\n }\n\n private bindEvents() {\n const group: IGroup = this.get('group');\n group.on('mousedown', this.onStartEvent(false));\n group.on('mouseup', this.onMouseUp);\n\n group.on('touchstart', this.onStartEvent(true));\n group.on('touchend', this.onMouseUp);\n\n const trackShape = group.findById(this.getElementId('track'));\n trackShape.on('click', this.onTrackClick);\n const thumbShape = group.findById(this.getElementId('thumb'));\n thumbShape.on('mouseover', this.onThumbMouseOver);\n thumbShape.on('mouseout', this.onThumbMouseOut);\n }\n\n private onStartEvent = (isMobile: boolean) => (e: Event) => {\n this.isMobile = isMobile;\n e.originalEvent.preventDefault();\n const clientX = isMobile ? get(e.originalEvent, 'touches.0.clientX') : e.clientX;\n const clientY = isMobile ? get(e.originalEvent, 'touches.0.clientY') : e.clientY;\n\n // 将开始的点记录下来\n this.startPos = this.cfg.isHorizontal ? clientX : clientY;\n\n this.bindLaterEvent();\n };\n\n private bindLaterEvent = () => {\n const containerDOM = this.getContainerDOM();\n let events = [];\n\n if (this.isMobile) {\n events = [\n addEventListener(containerDOM, 'touchmove', this.onMouseMove),\n addEventListener(containerDOM, 'touchend', this.onMouseUp),\n addEventListener(containerDOM, 'touchcancel', this.onMouseUp),\n ];\n } else {\n events = [\n addEventListener(containerDOM, 'mousemove', this.onMouseMove),\n addEventListener(containerDOM, 'mouseup', this.onMouseUp),\n // 为了保证划出 canvas containerDom 时还没触发 mouseup\n addEventListener(containerDOM, 'mouseleave', this.onMouseUp),\n ];\n }\n this.clearEvents = () => {\n events.forEach((e) => {\n e.remove();\n });\n };\n };\n\n // 拖拽滑块的事件回调\n // 这里是 dom 原生事件,绑定在 dom 元素上的\n private onMouseMove = (e: MouseEvent) => {\n const { isHorizontal, thumbOffset } = this.cfg;\n e.preventDefault();\n const clientX = this.isMobile ? get(e, 'touches.0.clientX') : e.clientX;\n const clientY = this.isMobile ? get(e, 'touches.0.clientY') : e.clientY;\n // 鼠标松开的位置\n const endPos = isHorizontal ? clientX : clientY;\n // 滑块需要移动的距离, 由于这里是对滑块监听,所以移动的距离就是 diffDis, 如果监听对象是 container dom,则需要算比例\n const diff = endPos - this.startPos;\n // 更新 _startPos\n this.startPos = endPos;\n\n this.updateThumbOffset(thumbOffset + diff);\n };\n\n private onMouseUp = (e: Event) => {\n e.preventDefault();\n this.clearEvents();\n };\n\n // 点击滑道的事件回调,移动滑块位置\n private onTrackClick = (e: Event) => {\n const { isHorizontal, x, y, thumbLen } = this.cfg;\n const containerDOM = this.getContainerDOM();\n const rect = containerDOM.getBoundingClientRect();\n const { clientX, clientY } = e;\n const offset = isHorizontal ? clientX - rect.left - x - thumbLen / 2 : clientY - rect.top - y - thumbLen / 2;\n\n const newOffset = this.validateRange(offset);\n this.updateThumbOffset(newOffset);\n };\n\n private onThumbMouseOver = () => {\n const { thumbColor } = this.cfg.theme.hover;\n this.getElementByLocalId('thumb').attr('stroke', thumbColor);\n this.draw();\n };\n\n private onThumbMouseOut = () => {\n const { thumbColor } = this.cfg.theme.default;\n this.getElementByLocalId('thumb').attr('stroke', thumbColor);\n this.draw();\n };\n\n private getContainerDOM() {\n const container = this.get('container');\n const canvas = container && container.get('canvas');\n\n return canvas && canvas.get('container');\n }\n\n private validateRange(offset: number) {\n const { thumbLen, trackLen } = this.cfg;\n let newOffset = offset;\n if (offset + thumbLen > trackLen) {\n newOffset = trackLen - thumbLen;\n } else if (offset + thumbLen < thumbLen) {\n newOffset = 0;\n }\n return newOffset;\n }\n\n private draw() {\n const container = this.get('container');\n const canvas = container && container.get('canvas');\n\n if (canvas) {\n canvas.draw();\n }\n }\n\n private updateThumbOffset(offset: number) {\n const { thumbOffset, isHorizontal, thumbLen, size } = this.cfg;\n const newOffset = this.validateRange(offset);\n if (newOffset === thumbOffset) {\n // 如果更新后的 offset 与原值相同,则不改变\n return;\n }\n const thumbShape = this.getElementByLocalId('thumb');\n\n if (isHorizontal) {\n thumbShape.attr({\n x1: newOffset + size / 2,\n x2: newOffset + thumbLen - size / 2,\n });\n } else {\n thumbShape.attr({\n y1: newOffset + size / 2,\n y2: newOffset + thumbLen - size / 2,\n });\n }\n this.emitOffsetChange(newOffset);\n }\n\n private emitOffsetChange(offset: number) {\n const { thumbOffset: originalValue, trackLen, thumbLen } = this.cfg;\n this.cfg.thumbOffset = offset;\n // 发送事件\n this.emit('scrollchange', {\n thumbOffset: offset,\n ratio: clamp(offset / (trackLen - thumbLen), 0, 1),\n });\n this.delegateEmit('valuechange', {\n originalValue,\n value: offset,\n });\n }\n}\n","/* 依赖的模块,在这里统一引入,方便打包优化 */\n\n// G\nexport {\n ICanvas,\n IElement,\n IGroup,\n IShape,\n PathCommand,\n BBox,\n Point,\n ShapeAttrs,\n Event,\n AbstractGroup,\n AbstractShape,\n} from '@antv/g-base';\n// 需要有 G-base 提供 g engine 类型定义\nexport type IG = any;\n\n// adjust\nexport { registerAdjust, getAdjust, Adjust } from '@antv/adjust';\n\n// attr\nexport { getAttribute, Attribute } from '@antv/attr';\nexport { Color } from '@antv/attr';\n\n// coordinate\nexport { getCoordinate, registerCoordinate, Coordinate, CoordinateCfg } from '@antv/coord';\n\n// scale\nexport { getScale, registerScale, Scale, ScaleConfig, Tick } from '@antv/scale';\n\n// component\nimport {\n Annotation,\n Axis,\n Component,\n Crosshair,\n Grid,\n GroupComponent,\n HtmlComponent,\n Legend,\n Slider,\n Tooltip,\n Scrollbar,\n} from '@antv/component';\n\nexport {\n CategoryLegendCfg,\n CircleAxisCfg,\n LineAxisCfg,\n GroupComponentCfg,\n ListItem,\n AxisLineCfg,\n AxisTickLineCfg,\n AxisSubTickLineCfg,\n AxisTitleCfg,\n AxisLabelCfg,\n GridLineCfg,\n LegendMarkerCfg,\n LegendTitleCfg,\n LegendBackgroundCfg,\n LegendItemNameCfg,\n LegendItemValueCfg,\n LegendPageNavigatorCfg,\n ContinueLegendCfg,\n ContinueLegendTrackCfg,\n ContinueLegendRailCfg,\n ContinueLegendLabelCfg,\n ContinueLegendHandlerCfg,\n CrosshairLineCfg,\n CrosshairTextCfg,\n CrosshairTextBackgroundCfg,\n SliderCfg,\n TrendCfg,\n EnhancedTextCfg,\n LineAnnotationTextCfg,\n IComponent,\n IList,\n} from '@antv/component';\n\nexport { HtmlComponent, GroupComponent, Component, Crosshair };\nexport { Annotation };\n// axis\nconst { Line: LineAxis, Circle: CircleAxis } = Axis;\nexport { LineAxis, CircleAxis };\n// grid\nconst { Line: LineGrid, Circle: CircleGrid } = Grid;\nexport { LineGrid, CircleGrid };\n// legend\nconst { Category: CategoryLegend, Continuous: ContinuousLegend } = Legend;\nexport { CategoryLegend, ContinuousLegend };\n// Tooltip\nconst { Html: HtmlTooltip } = Tooltip;\nexport { HtmlTooltip };\n// Slider\nexport { Slider };\n// Scrollbar\nexport { Scrollbar };\n","import { BBox } from '@antv/g-svg';\nimport { each, isEmpty, isNumber, isNumberEqual, max, min } from '@antv/util';\nimport { Coordinate, IShape, Point } from '../dependents';\nimport { ShapeInfo } from '../interface';\n\n// 获取图形的包围盒\nfunction getPointsBox(points) {\n if (isEmpty(points)) {\n return null;\n }\n\n let minX = points[0].x;\n let maxX = points[0].x;\n let minY = points[0].y;\n let maxY = points[0].y;\n each(points, (point) => {\n minX = minX > point.x ? point.x : minX;\n maxX = maxX < point.x ? point.x : maxX;\n minY = minY > point.y ? point.y : minY;\n maxY = maxY < point.y ? point.y : maxY;\n });\n\n return {\n minX,\n maxX,\n minY,\n maxY,\n centerX: (minX + maxX) / 2,\n centerY: (minY + maxY) / 2,\n };\n}\n\nfunction uniqueValues(array: T[]) {\n return Array.from(new Set(array)).length === 1;\n}\n\nfunction mid(array: number[]) {\n return (min(array) + max(array)) / 2;\n}\n\n/**\n * @ignore\n * 根据弧度计算极坐标系下的坐标点\n * @param centerX\n * @param centerY\n * @param radius\n * @param angleInRadian\n * @returns\n */\nexport function polarToCartesian(centerX: number, centerY: number, radius: number, angleInRadian: number) {\n return {\n x: centerX + radius * Math.cos(angleInRadian),\n y: centerY + radius * Math.sin(angleInRadian),\n };\n}\n\n/**\n * @ignore\n * 根据起始角度计算绘制扇形的 path\n * @param centerX\n * @param centerY\n * @param radius\n * @param startAngleInRadian\n * @param endAngleInRadian\n * @returns\n */\nexport function getSectorPath(\n centerX: number,\n centerY: number,\n radius: number,\n startAngleInRadian: number,\n endAngleInRadian: number,\n innerRadius: number = 0\n) {\n const start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n const end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n\n const innerStart = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian);\n const innerEnd = polarToCartesian(centerX, centerY, innerRadius, endAngleInRadian);\n\n if (endAngleInRadian - startAngleInRadian === Math.PI * 2) {\n // 整个圆是分割成两个圆\n const middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n const innerMiddlePoint = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian + Math.PI);\n const circlePathCommands = [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 1, end.x, end.y],\n ['M', innerStart.x, innerStart.y],\n ];\n if (innerRadius) {\n circlePathCommands.push(['A', innerRadius, innerRadius, 0, 1, 0, innerMiddlePoint.x, innerMiddlePoint.y]);\n circlePathCommands.push(['A', innerRadius, innerRadius, 0, 1, 0, innerEnd.x, innerEnd.y]);\n }\n\n circlePathCommands.push(['M', start.x, start.y]);\n circlePathCommands.push(['Z']);\n\n return circlePathCommands;\n }\n\n const arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n const sectorPathCommands = [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, arcSweep, 1, end.x, end.y],\n ['L', innerEnd.x, innerEnd.y],\n ];\n if (innerRadius) {\n sectorPathCommands.push(['A', innerRadius, innerRadius, 0, arcSweep, 0, innerStart.x, innerStart.y]);\n }\n sectorPathCommands.push(['L', start.x, start.y]);\n sectorPathCommands.push(['Z']);\n\n return sectorPathCommands;\n}\n\n/**\n * @ignore\n * Gets arc path\n * @param centerX\n * @param centerY\n * @param radius\n * @param startAngleInRadian\n * @param endAngleInRadian\n * @returns\n */\nexport function getArcPath(\n centerX: number,\n centerY: number,\n radius: number,\n startAngleInRadian: number,\n endAngleInRadian: number\n) {\n const start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n const end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n\n if (isNumberEqual(endAngleInRadian - startAngleInRadian, Math.PI * 2)) {\n const middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n return [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 1, start.x, start.y],\n ['A', radius, radius, 0, 1, 0, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 0, start.x, start.y],\n ['Z'],\n ];\n }\n const arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n return [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, arcSweep, 1, end.x, end.y],\n ];\n}\n\n/**\n * @ignore\n * 从数据模型中的 points 换算角度\n * @param shapeModel\n * @param coordinate\n * @returns\n */\nexport function getAngle(shapeModel: ShapeInfo, coordinate: Coordinate) {\n const points = shapeModel.points;\n const box = getPointsBox(points);\n let endAngle;\n let startAngle;\n const { startAngle: coordStartAngle, endAngle: coordEndAngle } = coordinate;\n const diffAngle = coordEndAngle - coordStartAngle;\n\n if (coordinate.isTransposed) {\n endAngle = box.maxY * diffAngle;\n startAngle = box.minY * diffAngle;\n } else {\n endAngle = box.maxX * diffAngle;\n startAngle = box.minX * diffAngle;\n }\n endAngle += coordStartAngle;\n startAngle += coordStartAngle;\n return {\n startAngle,\n endAngle,\n };\n}\n\n/**\n * @ignore\n * 计算多边形重心: https://en.wikipedia.org/wiki/Centroid#Of_a_polygon\n */\nexport function getPolygonCentroid(xs: number | number[], ys: number | number[]) {\n if (isNumber(xs) && isNumber(ys)) {\n // 普通色块图,xs 和 ys 是数值\n return [xs, ys];\n }\n\n xs = xs as number[];\n ys = ys as number[];\n // 当这个 polygon 的点在一条线上的时候\n // 也就是说 xs 里面的值都相同,比如:[1, 1, 1, 1]\n // 或者说 ys 里面的值都相同,比如:[0, 0, 0, 0]\n // 下面计算得到的 k = 0\n // 导致返回的值是 [NaN, NaN]\n // 所以这里做相应的处理\n if (uniqueValues(xs) || uniqueValues(ys)) return [mid(xs), mid(ys)];\n\n let i = -1;\n let x = 0;\n let y = 0;\n let former;\n let current = xs.length - 1;\n let diff;\n let k = 0;\n while (++i < xs.length) {\n former = current;\n current = i;\n k += diff = xs[former] * ys[current] - xs[current] * ys[former];\n x += (xs[former] + xs[current]) * diff;\n y += (ys[former] + ys[current]) * diff;\n }\n k *= 3;\n return [x / k, y / k];\n}\n\n/**\n * @ignore\n * 获取需要替换的属性,如果原先图形元素存在,而新图形不存在,则设置 undefined\n */\nexport function getReplaceAttrs(sourceShape: IShape, targetShape: IShape) {\n const originAttrs = sourceShape.attr();\n const newAttrs = targetShape.attr();\n each(originAttrs, (v, k) => {\n if (newAttrs[k] === undefined) {\n newAttrs[k] = undefined;\n }\n });\n return newAttrs;\n}\n","import { isArray, isString } from '@antv/util';\n\n/**\n * @ignore\n * Determines whether between is\n * @param value\n * @param start\n * @param end\n * @returns true if between\n */\nexport function isBetween(value: number, start: number, end: number): boolean {\n const min = Math.min(start, end);\n const max = Math.max(start, end);\n\n return value >= min && value <= max;\n}\n\n/**\n * @ignore\n * pads the current string/array with a given value (repeated, if needed) so that the resulting reaches a given length.\n * The padding is applied from the end of the current value.\n *\n * @param source\n * @param targetLength\n * @param padValue\n * @returns\n */\nexport function padEnd(source: string | any[], targetLength: number, padValue: any) {\n if (isString(source)) {\n return source.padEnd(targetLength, padValue);\n } else if (isArray(source)) {\n const sourceLength = source.length;\n if (sourceLength < targetLength) {\n const diff = targetLength - sourceLength;\n for (let i = 0; i < diff; i++) {\n source.push(padValue);\n }\n }\n }\n\n return source;\n}\n\n/**\n * @ignore\n * omit keys of an object.\n * @param obj\n * @param keys\n */\nexport function omit(obj: T, keys: string[]): T {\n if (typeof obj === 'object') {\n keys.forEach((key: string) => {\n delete obj[key];\n });\n }\n\n return obj;\n}\n\n/**\n * @ignore\n * @param sourceArray\n * @param targetArray\n * @param map\n */\nexport function uniq(sourceArray: any[], targetArray: any[] = [], map: Map = new Map()) {\n for (const source of sourceArray) {\n if (!map.has(source)) {\n targetArray.push(source);\n map.set(source, true);\n }\n }\n return targetArray;\n}\n","import { each } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { Padding, Point, Region } from '../interface';\nimport { BBox as BBoxObject } from '../dependents';\n\n/**\n * 用于包围盒计算。\n */\nexport class BBox {\n /** x 轴坐标系 */\n public x: number;\n /** y 轴坐标系 */\n public y: number;\n /** 包围盒高度 */\n public height: number;\n /** 包围盒宽度 */\n public width: number;\n\n public static fromRange(minX: number, minY: number, maxX: number, maxY: number) {\n return new BBox(minX, minY, maxX - minX, maxY - minY);\n }\n\n public static fromObject(bbox: BBoxObject) {\n return new BBox(bbox.minX, bbox.minY, bbox.width, bbox.height);\n }\n\n constructor(x: number = 0, y: number = 0, width: number = 0, height: number = 0) {\n this.x = x;\n this.y = y;\n this.height = height;\n this.width = width;\n }\n\n public get minX(): number {\n return this.x;\n }\n\n public get maxX(): number {\n return this.x + this.width;\n }\n\n public get minY(): number {\n return this.y;\n }\n\n public get maxY(): number {\n return this.y + this.height;\n }\n\n public get tl(): Point {\n return { x: this.x, y: this.y };\n }\n\n public get tr(): Point {\n return { x: this.maxX, y: this.y };\n }\n\n public get bl(): Point {\n return { x: this.x, y: this.maxY };\n }\n\n public get br(): Point {\n return { x: this.maxX, y: this.maxY };\n }\n\n public get top(): Point {\n return {\n x: this.x + this.width / 2,\n y: this.minY,\n };\n }\n\n public get right(): Point {\n return {\n x: this.maxX,\n y: this.y + this.height / 2,\n };\n }\n public get bottom(): Point {\n return {\n x: this.x + this.width / 2,\n y: this.maxY,\n };\n }\n public get left(): Point {\n return {\n x: this.minX,\n y: this.y + this.height / 2,\n };\n }\n // end 计算属性\n\n /**\n * 包围盒是否相等\n * @param {BBox} bbox 包围盒\n * @returns 包围盒是否相等\n */\n public isEqual(bbox: BBox): boolean {\n return this.x === bbox.x && this.y === bbox.y && this.width === bbox.width && this.height === bbox.height;\n }\n\n /**\n * 是否包含了另一个包围盒\n * @param child\n */\n public contains(child: BBox): boolean {\n return child.minX >= this.minX && child.maxX <= this.maxX && child.minY >= this.minY && child.maxY <= this.maxY;\n }\n\n /**\n * 克隆包围盒\n * @returns 包围盒\n */\n public clone(): BBox {\n return new BBox(this.x, this.y, this.width, this.height);\n }\n\n /**\n * 取并集\n * @param subBBox\n */\n public add(...subBBox: BBox[]): BBox {\n const bbox = this.clone();\n each(subBBox, (b: BBox) => {\n bbox.x = Math.min(b.x, bbox.x);\n bbox.y = Math.min(b.y, bbox.y);\n bbox.width = Math.max(b.maxX, bbox.maxX) - bbox.x;\n bbox.height = Math.max(b.maxY, bbox.maxY) - bbox.y;\n });\n\n return bbox;\n }\n\n /**\n * 取交集\n * @param subBBox\n */\n public merge(...subBBox: BBox[]): BBox {\n const bbox = this.clone();\n each(subBBox, (b: BBox) => {\n bbox.x = Math.max(b.x, bbox.x);\n bbox.y = Math.max(b.y, bbox.y);\n bbox.width = Math.min(b.maxX, bbox.maxX) - bbox.x;\n bbox.height = Math.min(b.maxY, bbox.maxY) - bbox.y;\n });\n\n return bbox;\n }\n\n /**\n * bbox 剪裁\n * @param subBBox\n * @param direction\n */\n public cut(subBBox: BBox, direction: DIRECTION): BBox {\n const width = subBBox.width;\n const height = subBBox.height;\n\n switch (direction) {\n case DIRECTION.TOP:\n case DIRECTION.TOP_LEFT:\n case DIRECTION.TOP_RIGHT:\n return BBox.fromRange(this.minX, this.minY + height, this.maxX, this.maxY);\n\n case DIRECTION.RIGHT:\n case DIRECTION.RIGHT_TOP:\n case DIRECTION.RIGHT_BOTTOM:\n return BBox.fromRange(this.minX, this.minY, this.maxX - width, this.maxY);\n\n case DIRECTION.BOTTOM:\n case DIRECTION.BOTTOM_LEFT:\n case DIRECTION.BOTTOM_RIGHT:\n return BBox.fromRange(this.minX, this.minY, this.maxX, this.maxY - height);\n\n case DIRECTION.LEFT:\n case DIRECTION.LEFT_TOP:\n case DIRECTION.LEFT_BOTTOM:\n return BBox.fromRange(this.minX + width, this.minY, this.maxX, this.maxY);\n default:\n // 其他情况不裁剪,原样返回\n return this;\n }\n }\n\n /**\n * 收缩形成新的\n * @param gap\n */\n public shrink(gap: Padding): BBox {\n const [top, right, bottom, left] = gap;\n\n return new BBox(this.x + left, this.y + top, this.width - left - right, this.height - top - bottom);\n }\n\n /**\n * 扩张形成新的\n * @param gap\n */\n public expand(gap: Padding): BBox {\n const [top, right, bottom, left] = gap;\n\n return new BBox(this.x - left, this.y - top, this.width + left + right, this.height + top + bottom);\n }\n\n /**\n * get the gap of two bbox, if not exceed, then 0\n * @param bbox\n * @returns [top, right, bottom, left]\n */\n public exceed(bbox: BBox): Padding {\n return [\n Math.max(-this.minY + bbox.minY, 0),\n Math.max(this.maxX - bbox.maxX, 0),\n Math.max(this.maxY - bbox.maxY, 0),\n Math.max(-this.minX + bbox.minX, 0),\n ];\n }\n\n /**\n * 是否碰撞\n * @param bbox\n */\n public collide(bbox: BBox): boolean {\n return this.minX < bbox.maxX && this.maxX > bbox.minX && this.minY < bbox.maxY && this.maxY > bbox.minY;\n }\n\n /**\n * 获取包围盒大小\n * @returns 包围盒大小\n */\n public size(): number {\n return this.width * this.height;\n }\n\n /**\n * 点是否在 bbox 中\n * @param p\n */\n public isPointIn(p: Point) {\n return p.x >= this.minX && p.x <= this.maxX && p.y >= this.minY && p.y <= this.maxY;\n }\n}\n\n/**\n * 从一个 bbox 的 region 获取 bbox\n * @param bbox\n * @param region\n */\nexport const getRegionBBox = (bbox: BBox, region: Region): BBox => {\n const { start, end } = region;\n\n return new BBox(\n bbox.x + bbox.width * start.x,\n bbox.y + bbox.height * start.y,\n bbox.width * Math.abs(end.x - start.x),\n bbox.height * Math.abs(end.y - start.y)\n );\n};\n\n/**\n * 将 bbox 转换成 points\n * @param bbox\n */\nexport function toPoints(bbox: Partial): any[] {\n return [\n [bbox.minX, bbox.minY],\n [bbox.maxX, bbox.minY],\n [bbox.maxX, bbox.maxY],\n [bbox.minX, bbox.maxY],\n ];\n}\n","import { Coordinate } from '../dependents';\nimport { Point } from '../interface';\nimport { getSectorPath } from './graphics';\nimport { isBetween } from './helper';\nimport { BBox } from './bbox';\n\n/**\n * @ignore\n * Gets x dimension length\n * @param coordinate\n * @returns x dimension length\n */\nexport function getXDimensionLength(coordinate): number {\n if (coordinate.isPolar && !coordinate.isTransposed) {\n // 极坐标系下 width 为弧长\n return (coordinate.endAngle - coordinate.startAngle) * coordinate.getRadius();\n }\n\n // 直角坐标系\n const start = coordinate.convert({ x: 0, y: 0 });\n const end = coordinate.convert({ x: 1, y: 0 });\n // 坐标系有可能发生 transpose 等变换,所有通过两点之间的距离进行计算\n return Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2));\n}\n\n/**\n * @ignore\n * Determines whether full circle is\n * @param coordinate\n * @returns true if full circle\n */\nexport function isFullCircle(coordinate: Coordinate): boolean {\n if (coordinate.isPolar) {\n const { startAngle, endAngle } = coordinate;\n return endAngle - startAngle === Math.PI * 2;\n }\n return false;\n}\n\n/**\n * @ignore\n * 获取当前点到坐标系圆心的距离\n * @param coordinate 坐标系\n * @param point 当前点\n * @returns distance to center\n */\nexport function getDistanceToCenter(coordinate: Coordinate, point: Point): number {\n const center = coordinate.getCenter() as Point;\n return Math.sqrt((point.x - center.x) ** 2 + (point.y - center.y) ** 2);\n}\n\n/**\n * @ignore\n * 坐标点是否在坐标系中\n * @param coordinate\n * @param point\n */\nexport function isPointInCoordinate(coordinate: Coordinate, point: Point) {\n let result = false;\n\n if (coordinate) {\n if (coordinate.type === 'theta') {\n const { start, end } = coordinate;\n result = isBetween(point.x, start.x, end.x) && isBetween(point.y, start.y, end.y);\n } else {\n const invertPoint = coordinate.invert(point);\n \n result = isBetween(invertPoint.x, 0, 1) && isBetween(invertPoint.y, 0, 1);\n }\n }\n\n return result;\n}\n\n/**\n * @ignore\n * 获取点到圆心的连线与水平方向的夹角\n */\nexport function getAngleByPoint(coordinate: Coordinate, point: Point): number {\n const center = coordinate.getCenter();\n return Math.atan2(point.y - center.y, point.x - center.x);\n}\n\n/**\n * @ignore\n * 获取同坐标系范围相同的剪切区域\n * @param coordinate\n * @returns\n */\nexport function getCoordinateClipCfg(coordinate: Coordinate, margin: number = 0) {\n const { start, end } = coordinate;\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n\n if (coordinate.isPolar) {\n const { startAngle, endAngle } = coordinate;\n const center = coordinate.getCenter();\n const radius = coordinate.getRadius();\n\n return {\n type: 'path',\n startState: {\n path: getSectorPath(center.x, center.y, radius + margin, startAngle, startAngle),\n },\n endState: (ratio) => {\n const diff = (endAngle - startAngle) * ratio + startAngle;\n const path = getSectorPath(center.x, center.y, radius + margin, startAngle, diff);\n return {\n path,\n };\n },\n attrs: {\n path: getSectorPath(center.x, center.y, radius + margin, startAngle, endAngle),\n },\n };\n }\n\n let endState;\n if (coordinate.isTransposed) {\n endState = {\n height: height + margin * 2,\n };\n } else {\n endState = {\n width: width + margin * 2,\n };\n }\n\n return {\n type: 'rect',\n startState: {\n x: start.x - margin,\n y: end.y - margin,\n width: coordinate.isTransposed ? width + margin * 2 : 0,\n height: coordinate.isTransposed ? 0 : height + margin * 2,\n },\n endState,\n attrs: {\n x: start.x - margin,\n y: end.y - margin,\n width: width + margin * 2,\n height: height + margin * 2,\n },\n };\n}\n\n/**\n * 获取坐标系范围的 BBox\n * @param coordinate\n * @param margin\n */\nexport function getCoordinateBBox(coordinate: Coordinate, margin = 0) {\n const { start, end } = coordinate;\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n const minX = Math.min(start.x, end.x);\n const minY = Math.min(start.y, end.y);\n\n return BBox.fromRange(minX - margin, minY - margin, minX + width + margin, minY + height + margin);\n}\n","import { firstValue, get, isEmpty, isNil, isNumber, isString, valuesOfKey } from '@antv/util';\nimport { GROUP_ATTRS } from '../constant';\nimport { getScale, Scale, Coordinate } from '../dependents';\nimport { LooseObject, ScaleOption, ViewCfg } from '../interface';\nimport { isFullCircle } from './coordinate';\n\nconst dateRegex =\n /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]+)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\n/**\n * 获取字段对应数据的类型\n * @param field 数据字段名\n * @param data 数据源\n * @returns default type 返回对应的数据类型\n */\nfunction getDefaultType(value: any): string {\n let type = 'linear';\n if (dateRegex.test(value)) {\n type = 'timeCat';\n } else if (isString(value)) {\n type = 'cat';\n }\n return type;\n}\n\n/**\n * using the scale type if user specified, otherwise infer the type\n */\nexport function inferScaleType(scale: Scale, scaleDef: ScaleOption = {}, attrType: string, geometryType: string): string {\n if (scaleDef.type) return scaleDef.type;\n // identity scale 直接返回\n // geometry 类型有: edge,heatmap,interval,line,path,point,polygon,schema,voilin等;理论上,interval 下,可以用 linear scale 作为分组字段\n if (scale.type !== 'identity' && GROUP_ATTRS.includes(attrType) && ['interval'].includes(geometryType)) {\n return 'cat';\n }\n return scale.isCategory ? 'cat' : scale.type;\n}\n\n/**\n * @ignore\n * 为指定的 `field` 字段数据创建 scale\n * @param field 字段名\n * @param [data] 数据集,可为空\n * @param [scaleDef] 列定义,可为空\n * @returns scale 返回创建的 Scale 实例\n */\nexport function createScaleByField(field: string | number, data?: LooseObject[] | [], scaleDef?: ScaleOption): Scale {\n const validData = data || [];\n\n if (isNumber(field) || (isNil(firstValue(validData, field)) && isEmpty(scaleDef))) {\n const Identity = getScale('identity');\n return new Identity({\n field: field.toString(),\n values: [field],\n });\n }\n\n const values = valuesOfKey(validData, field);\n\n // 如果已经定义过这个度量 (fix-later 单纯从数据中,推断 scale type 是不精确的)\n const type = get(scaleDef, 'type', getDefaultType(values[0]));\n const ScaleCtor = getScale(type);\n return new ScaleCtor({\n field,\n values,\n ...scaleDef,\n });\n}\n\n/**\n * @ignore\n * 同步 scale\n * @todo 是否可以通过 scale.update() 方法进行更新\n * @param scale 需要同步的 scale 实例\n * @param newScale 同步源 Scale\n */\nexport function syncScale(scale: Scale, newScale: Scale) {\n if (scale.type !== 'identity' && newScale.type !== 'identity') {\n const obj = {};\n for (const k in newScale) {\n if (Object.prototype.hasOwnProperty.call(newScale, k)) {\n obj[k] = newScale[k];\n }\n }\n\n scale.change(obj);\n }\n}\n\n/**\n * @ignore\n * get the scale name, if alias exist, return alias, or else field\n * @param scale\n * @returns the name of field\n */\nexport function getName(scale: Scale): string {\n return scale.alias || scale.field;\n}\n\n/**\n * 根据 scale values 和 coordinate 获取分类默认 range\n * @param scale 需要获取的 scale 实例\n * @param coordinate coordinate 实例\n * @param theme theme\n */\nexport function getDefaultCategoryScaleRange(\n scale: Scale,\n coordinate: Coordinate,\n theme: ViewCfg['theme']\n): Scale['range'] {\n const { values } = scale;\n const count = values.length;\n let range;\n\n if (count === 1) {\n range = [0.5, 1]; // 只有一个分类时,防止计算出现 [0.5,0.5] 的状态\n } else {\n let widthRatio = 1;\n let offset = 0;\n\n if (isFullCircle(coordinate)) {\n if (!coordinate.isTransposed) {\n range = [0, 1 - 1 / count];\n } else {\n widthRatio = get(theme, 'widthRatio.multiplePie', 1 / 1.3);\n offset = (1 / count) * widthRatio;\n range = [offset / 2, 1 - offset / 2];\n }\n } else {\n offset = 1 / count / 2; // 两边留下分类空间的一半\n range = [offset, 1 - offset]; // 坐标轴最前面和最后面留下空白防止绘制柱状图时\n }\n }\n return range;\n}\n\n/**\n * @function y轴scale的max\n * @param {yScale}\n */\nexport function getMaxScale(scale: Scale) {\n // 过滤values[]中 NaN/undefined/null 等\n const values = scale.values.filter((item) => !isNil(item) && !isNaN(item));\n\n return Math.max(...values, isNil(scale.max) ? -Infinity : scale.max);\n}\n","import { deepMix, get, isBoolean } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { Coordinate, Scale } from '../dependents';\nimport { AxisCfg, AxisOption, Point, Region } from '../interface';\nimport { getName } from './scale';\nimport { vec2 } from '@antv/matrix-util';\n\n/**\n * @ignore\n * get axis relative region ( 0 ~ 1) by direction when coordinate is rect\n * @param direction\n * @returns axis coordinate region\n */\nexport function getLineAxisRelativeRegion(direction: DIRECTION): Region {\n let start;\n let end;\n\n switch (direction) {\n case DIRECTION.TOP:\n start = { x: 0, y: 1 };\n end = { x: 1, y: 1 };\n break;\n case DIRECTION.RIGHT:\n start = { x: 1, y: 0 };\n end = { x: 1, y: 1 };\n break;\n case DIRECTION.BOTTOM:\n start = { x: 0, y: 0 };\n end = { x: 1, y: 0 };\n break;\n case DIRECTION.LEFT:\n start = { x: 0, y: 0 };\n end = { x: 0, y: 1 };\n break;\n default:\n start = end = { x: 0, y: 0 };\n }\n\n return { start, end };\n}\n\n/**\n * @ignore\n * get axis relative region ( 0 ~ 1) by direction when coordinate is polar\n * @param coordinate\n * @returns axis coordinate region\n */\nexport function getCircleAxisRelativeRegion(coordinate: Coordinate) {\n let start;\n let end;\n if (coordinate.isTransposed) {\n start = {\n x: 0,\n y: 0,\n };\n end = {\n x: 1,\n y: 0,\n };\n } else {\n start = {\n x: 0,\n y: 0,\n };\n end = {\n x: 0,\n y: 1,\n };\n }\n\n return { start, end };\n}\n\n/**\n * @ignore\n * get the axis region from coordinate\n * @param coordinate\n * @param direction\n * @returns the axis region (start point, end point)\n */\nexport function getAxisRegion(coordinate: Coordinate, direction: DIRECTION): Region {\n let region = { start: { x: 0, y: 0 }, end: { x: 0, y: 0 } };\n if (coordinate.isRect) {\n region = getLineAxisRelativeRegion(direction);\n } else if (coordinate.isPolar) {\n region = getCircleAxisRelativeRegion(coordinate);\n }\n\n const { start, end } = region;\n return {\n start: coordinate.convert(start),\n end: coordinate.convert(end),\n };\n}\n\n/**\n * @ignore\n * get axis factor\n * @param coordinate\n * @param direction\n * @returns factor\n */\nexport function getAxisFactor(coordinate: Coordinate, direction: DIRECTION): number {\n // rect coordinate, by direction\n if (coordinate.isRect) {\n return coordinate.isTransposed\n ? [DIRECTION.RIGHT, DIRECTION.BOTTOM].includes(direction)\n ? 1\n : -1\n : [DIRECTION.BOTTOM, DIRECTION.RIGHT].includes(direction)\n ? -1\n : 1;\n }\n\n // polar y axis, by angle\n if (coordinate.isPolar) {\n const startAngle = coordinate.x.start;\n return startAngle < 0 ? -1 : 1;\n }\n\n return 1;\n}\n\n/**\n * @ignore\n * whether the axis isVertical\n * @param region\n * @returns isVertical\n */\nexport function isVertical(region: Region): boolean {\n const { start, end } = region;\n\n return start.x === end.x;\n}\n\n/**\n * @ignore\n * get factor by region (real position)\n * @param region\n * @param center\n * @returns factor\n */\nexport function getAxisFactorByRegion(region: Region, center: Point): number {\n const { start, end } = region;\n\n const isAxisVertical = isVertical(region);\n\n // 垂直\n if (isAxisVertical) {\n // 左方,从下到上、右方,从上到下\n if ((start.y - end.y) * (center.x - start.x) > 0) {\n return 1;\n } else {\n return -1;\n }\n } else {\n // 下方,从左到右、上方,从右到做\n if ((end.x - start.x) * (start.y - center.y) > 0) {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n/**\n * @ignore\n * get the axis cfg from theme, will mix the common cfg of legend theme\n *\n * @param theme view theme object\n * @param direction axis direction\n * @returns axis theme cfg\n */\nexport function getAxisThemeCfg(theme: object, direction: string): object {\n const axisTheme = get(theme, ['components', 'axis'], {});\n return deepMix({}, get(axisTheme, ['common'], {}), deepMix({}, get(axisTheme, [direction], {})));\n}\n\n/**\n * get the options of axis title,mix the cfg from theme, avoid common themeCfg not work\n * @param theme\n * @param direction\n * @param axisOptions\n * @returns axis title options\n */\nexport function getAxisTitleOptions(theme: object, direction: string, axisOptions?: object): object {\n const axisTheme = get(theme, ['components', 'axis'], {});\n return deepMix(\n {},\n get(axisTheme, ['common', 'title'], {}),\n deepMix({}, get(axisTheme, [direction, 'title'], {})),\n axisOptions\n );\n}\n\n/**\n * @ignore\n * get circle axis center and radius\n * @param coordinate\n */\nexport function getCircleAxisCenterRadius(coordinate: Coordinate) {\n // @ts-ignore\n const { x, y, circleCenter: center } = coordinate;\n const isReflectY = y.start > y.end;\n const start = coordinate.isTransposed\n ? coordinate.convert({\n x: isReflectY ? 0 : 1,\n y: 0,\n })\n : coordinate.convert({\n x: 0,\n y: isReflectY ? 0 : 1,\n });\n\n const startVector: [number, number] = [start.x - center.x, start.y - center.y];\n const normalVector: [number, number] = [1, 0];\n const startAngle =\n start.y > center.y ? vec2.angle(startVector, normalVector) : vec2.angle(startVector, normalVector) * -1;\n const endAngle = startAngle + (x.end - x.start);\n const radius = Math.sqrt((start.x - center.x) ** 2 + (start.y - center.y) ** 2);\n\n return {\n center,\n radius,\n startAngle,\n endAngle,\n };\n}\n\n/**\n * @ignore\n * 从配置中获取单个字段的 axis 配置\n * @param axes\n * @param field\n * @returns the axis option of field\n */\nexport function getAxisOption(axes: Record | boolean, field: string) {\n if (isBoolean(axes)) {\n return axes === false ? false : {};\n }\n return get(axes, [field]);\n}\n\n/**\n * @ignore\n * 如果配置了 position,则使用配置\n * @param axisOption\n * @param def\n */\nexport function getAxisDirection(axisOption: AxisOption, def: DIRECTION): DIRECTION {\n return get(axisOption, 'position', def);\n}\n\n/**\n * 获取 axis 的 title 文本\n * @param scale\n * @param axisOption\n */\nexport function getAxisTitleText(scale: Scale, axisOption: AxisCfg): string {\n return get(axisOption, ['title', 'text'], getName(scale));\n}\n","import { deepMix, each, every, get, isNil, isNumber } from '@antv/util';\nimport { LAYER } from '../constant';\nimport { IGroup } from '../dependents';\nimport { AxisCfg, Condition, Datum, FacetCfg, FacetData, FacetDataFilter, Region } from '../interface';\n\nimport View from '../chart/view';\nimport { getAxisOption } from '../util/axis';\n\n/**\n * facet 基类\n * - 定义生命周期,方便自定义 facet\n * - 提供基础的生命流程方法\n *\n * 生命周期:\n *\n * 初始化 init\n * 1. 初始化容器\n * 2. 数据分面,生成分面布局信息\n *\n * 渲染阶段 render\n * 1. view 创建\n * 2. title\n * 3. axis\n *\n * 清除阶段 clear\n * 1. 清除 view\n *\n * 销毁阶段 destroy\n * 1. clear\n * 2. 清除事件\n * 3. 清除 group\n */\nexport abstract class Facet = FacetCfg, F extends FacetData = FacetData> {\n /** 分面所在的 view */\n public view: View;\n /** 分面容器 */\n public container: IGroup;\n /** 是否销毁 */\n public destroyed: boolean = false;\n\n /** 分面的配置项 */\n protected cfg: C;\n /** 分面之后的所有分面数据结构 */\n protected facets: F[] = [];\n\n constructor(view: View, cfg: C) {\n this.view = view;\n this.cfg = deepMix({}, this.getDefaultCfg(), cfg);\n }\n\n /**\n * 初始化过程\n */\n public init() {\n // 初始化容器\n if (!this.container) {\n this.container = this.createContainer();\n }\n\n // 生成分面布局信息\n const data = this.view.getData();\n this.facets = this.generateFacets(data);\n }\n\n /**\n * 渲染分面,由上层 view 调用。包括:\n * - 分面 view\n * - 轴\n * - title\n *\n * 子类可以复写,添加一些其他组件,比如滚动条等\n */\n public render() {\n this.renderViews();\n }\n\n /**\n * 更新 facet\n */\n public update() {\n // 其实不用做任何事情,因为 facet 最终生成的 View 和 Geometry 都在父 view 的更新中处理了\n }\n\n /**\n * 清空,clear 之后如果还需要使用,需要重新调用 init 初始化过程\n * 一般在数据有变更的时候调用,重新进行数据的分面逻辑\n */\n public clear() {\n this.clearFacetViews();\n }\n\n /**\n * 销毁\n */\n public destroy() {\n this.clear();\n\n if (this.container) {\n this.container.remove(true);\n this.container = undefined;\n }\n\n this.destroyed = true;\n this.view = undefined;\n this.facets = [];\n }\n\n /**\n * 根据 facet 生成 view,可以给上层自定义使用\n * @param facet\n */\n protected facetToView(facet: F): View {\n const { region, data, padding = this.cfg.padding } = facet;\n\n const view = this.view.createView({\n region,\n padding,\n });\n\n // 设置分面的数据\n view.data(data || []);\n facet.view = view;\n\n // 前置钩子\n this.beforeEachView(view, facet);\n\n const { eachView } = this.cfg;\n if (eachView) {\n eachView(view, facet);\n }\n\n // 后置钩子\n this.afterEachView(view, facet);\n\n return view;\n }\n\n // 创建容器\n private createContainer(): IGroup {\n const foregroundGroup = this.view.getLayer(LAYER.FORE);\n return foregroundGroup.addGroup();\n }\n\n /**\n * 初始化 view\n */\n private renderViews() {\n this.createFacetViews();\n }\n\n /**\n * 创建 分面 view\n */\n private createFacetViews(): View[] {\n // 使用分面数据 创建分面 view\n return this.facets.map((facet): View => {\n return this.facetToView(facet);\n });\n }\n\n /**\n * 从 view 中清除 facetView\n */\n private clearFacetViews() {\n // 从 view 中移除分面 view\n each(this.facets, (facet) => {\n if (facet.view) {\n this.view.removeView(facet.view);\n facet.view = undefined;\n }\n });\n }\n\n /**\n * 解析 spacing\n */\n private parseSpacing() {\n /**\n * @example\n *\n * // 仅使用百分比或像素值\n * // 横向间隔为 10%,纵向间隔为 10%\n * ['10%', '10%']\n * // 横向间隔为 10px,纵向间隔为 10px\n * [10, 10]\n *\n * // 同时使用百分比和像素值\n * ['10%', 10]\n * // 横向间隔为 10%,纵向间隔为 10px\n */\n const { width, height } = this.view.viewBBox;\n const { spacing } = this.cfg;\n return spacing.map((s: number, idx: number) => {\n if (isNumber(s)) return s / (idx === 0 ? width : height);\n else return parseFloat(s) / 100;\n });\n }\n\n // 其他一些提供给子类使用的方法\n\n /**\n * 获取这个字段对应的所有值,数组\n * @protected\n * @param data 数据\n * @param field 字段名\n * @return 字段对应的值\n */\n protected getFieldValues(data: Datum[], field: string): string[] {\n const rst = [];\n const cache: Record = {};\n\n // 去重、去除 Nil 值\n each(data, (d: Datum) => {\n const value = d[field];\n if (!isNil(value) && !cache[value]) {\n rst.push(value);\n cache[value] = true;\n }\n });\n\n return rst;\n }\n\n /**\n * 获得每个分面的 region,平分区域\n * @param rows row 总数\n * @param cols col 总数\n * @param xIndex x 方向 index\n * @param yIndex y 方向 index\n */\n protected getRegion(rows: number, cols: number, xIndex: number, yIndex: number): Region {\n const [xSpacing, ySpacing] = this.parseSpacing();\n // 每两个分面区域横向间隔xSPacing, 纵向间隔ySpacing\n // 每个分面区域的横纵占比\n /**\n * ratio * num + spacing * (num - 1) = 1\n * => ratio = (1 - (spacing * (num - 1))) / num\n * = (1 + spacing) / num - spacing\n *\n * num 对应 cols/rows\n * spacing 对应 xSpacing/ySpacing\n */\n const xRatio = (1 + xSpacing) / (cols === 0 ? 1 : cols) - xSpacing;\n const yRatio = (1 + ySpacing) / (rows === 0 ? 1 : rows) - ySpacing;\n\n // 得到第 index 个分面区域百分比位置\n const start = {\n x: (xRatio + xSpacing) * xIndex,\n y: (yRatio + ySpacing) * yIndex,\n };\n const end = {\n x: start.x + xRatio,\n y: start.y + yRatio,\n };\n return { start, end };\n }\n\n protected getDefaultCfg() {\n return {\n eachView: undefined,\n showTitle: true,\n spacing: [0, 0],\n padding: 10,\n fields: [],\n };\n }\n\n /**\n * 默认的 title 样式,因为有的分面是 title,有的分面配置是 columnTitle、rowTitle\n */\n protected getDefaultTitleCfg() {\n // @ts-ignore\n const fontFamily = this.view.getTheme().fontFamily;\n return {\n style: {\n fontSize: 14,\n fill: '#666',\n fontFamily,\n },\n };\n }\n\n /**\n * 处理 axis 的默认配置\n * @param view\n * @param facet\n */\n protected processAxis(view: View, facet: F) {\n const options = view.getOptions();\n\n const coordinateOption = options.coordinate;\n const geometries = view.geometries;\n\n const coordinateType = get(coordinateOption, 'type', 'rect');\n\n if (coordinateType === 'rect' && geometries.length) {\n if (isNil(options.axes)) {\n // @ts-ignore\n options.axes = {};\n }\n const axes = options.axes;\n\n const [x, y] = geometries[0].getXYFields();\n\n const xOption = getAxisOption(axes, x);\n const yOption = getAxisOption(axes, y);\n\n if (xOption !== false) {\n options.axes[x] = this.getXAxisOption(x, axes, xOption, facet);\n }\n\n if (yOption !== false) {\n options.axes[y] = this.getYAxisOption(y, axes, yOption, facet);\n }\n }\n }\n\n /**\n * 获取分面数据\n * @param conditions\n */\n protected getFacetDataFilter(conditions: Condition[]): FacetDataFilter {\n return (datum: Datum) => {\n // 过滤出全部满足条件的数据\n return every(conditions, (condition) => {\n const { field, value } = condition;\n\n if (!isNil(value) && field) {\n return datum[field] === value;\n }\n return true;\n });\n };\n }\n\n /**\n * @override 开始处理 eachView\n * @param view\n * @param facet\n */\n protected abstract beforeEachView(view: View, facet: F);\n\n /**\n * @override 处理 eachView 之后\n * @param view\n * @param facet\n */\n protected abstract afterEachView(view: View, facet: F);\n\n /**\n * @override 生成分面数据,包含布局\n * @param data\n */\n protected abstract generateFacets(data: Datum[]): F[];\n\n /**\n * 获取 x 轴的配置\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected abstract getXAxisOption(x: string, axes: any, option: AxisCfg, facet: F): object;\n\n /**\n * 获取 y 轴的配置\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected abstract getYAxisOption(y: string, axes: any, option: AxisCfg, facet: F): object;\n}\n","import { lowerCase } from '@antv/util';\nimport { FacetCtor } from '../interface';\nexport { Facet } from './facet';\n\n/**\n * 所有的 Facet 类\n */\nconst Facets: Record = {};\n\n/**\n * 根据 type 获取 facet 类\n * @param type 分面类型\n */\nexport const getFacet = (type: string): FacetCtor => {\n return Facets[lowerCase(type)];\n};\n\n/**\n * 注册一个 Facet 类\n * @param type 分面类型\n * @param ctor 分面类\n */\nexport const registerFacet = (type: string, ctor: FacetCtor) => {\n Facets[lowerCase(type)] = ctor;\n};\n","import { assign } from '@antv/util';\nimport { IAction, IInteractionContext, LooseObject } from '../../interface';\n\n/**\n * Action 的基类\n */\nabstract class Action implements IAction {\n /** Action 名字 */\n public name;\n /** 上下文对象 */\n public context: IInteractionContext;\n /** Action 配置 */\n protected cfg: T;\n /** 配置项的字段,自动负值到 this 上 */\n protected cfgFields: string[];\n\n constructor(context: IInteractionContext, cfg?: T) {\n this.context = context;\n this.cfg = cfg;\n context.addAction(this);\n }\n\n /**\n * 设置配置项传入的值\n * @param cfg\n */\n protected applyCfg(cfg) {\n assign(this, cfg);\n }\n\n /**\n * Inits action,提供给子类用于继承\n */\n public init() {\n this.applyCfg(this.cfg);\n }\n\n /**\n * Destroys action\n */\n public destroy() {\n // 移除 action\n this.context.removeAction(this);\n // 清空\n this.context = null;\n }\n}\n\nexport default Action;\n","import { ActionCallback } from '../../interface';\nimport Action from './base';\n\n/** 回调函数构建的 Action */\nexport default class CallbackAction extends Action {\n /**\n * 回调函数\n */\n public callback: ActionCallback;\n /**\n * 执行\n */\n public execute() {\n if (this.callback) {\n this.callback(this.context);\n }\n }\n /**\n * 销毁\n */\n public destroy() {\n super.destroy();\n this.callback = null;\n }\n}\n","import { ActionCallback, IInteractionContext, LooseObject } from '../../interface';\nimport Action from './base';\nimport CallbackAction from './callback';\nimport { get } from '@antv/util';\n\n/** Action 构造函数 */\ntype ActionConstructor = new (context: IInteractionContext, cfg?: LooseObject) => Action;\n\n/** @ignore */\ninterface ActionOption {\n ActionClass: ActionConstructor;\n cfg: LooseObject;\n}\n\n// Action 类的缓存\nconst ActionCache: Record = {};\n\n/**\n * 根据名称获取 Action 实例\n * @param actionName - action 的名称\n * @param context 上下文\n * @returns Action 实例\n */\nexport function createAction(actionName: string, context: IInteractionContext): Action {\n const actionOption = ActionCache[actionName];\n let action = null;\n if (actionOption) {\n const { ActionClass, cfg } = actionOption;\n action = new ActionClass(context, cfg);\n action.name = actionName;\n action.init();\n }\n return action;\n}\n\n/**\n * 根据 action 的 name 获取定义的类\n * @param actionName action 的 name\n */\nexport function getActionClass(actionName: string): ActionConstructor {\n const actionOption = ActionCache[actionName];\n return get(actionOption, 'ActionClass');\n}\n\n/**\n * 注册 Action\n * @param actionName - action 的名称\n * @param ActionClass - 继承自 action 的类\n */\nexport function registerAction(actionName: string, ActionClass: ActionConstructor, cfg?: LooseObject) {\n ActionCache[actionName] = {\n ActionClass,\n cfg,\n };\n}\n\n/**\n * 取消注册 Action\n * @param actionName action 名称\n */\nexport function unregisterAction(actionName: string) {\n delete ActionCache[actionName];\n}\n\n/**\n * 根据回调函数获取 Action 实例\n * @param callback - action 的回调函数\n * @param context 上下文\n * @returns Action 实例\n */\nexport function createCallbackAction(callback: ActionCallback, context: IInteractionContext): CallbackAction {\n const action = new CallbackAction(context);\n action.callback = callback;\n action.name = 'callback';\n return action;\n}\n","import { vec2 } from '@antv/matrix-util';\nimport { each } from '@antv/util';\nimport { Coordinate, PathCommand } from '../../../dependents';\nimport { Point, Position } from '../../../interface';\nimport { getDistanceToCenter } from '../../../util/coordinate';\n\nfunction _points2path(points: Point[], isInCircle: boolean): PathCommand[] {\n const path = [];\n if (points.length) {\n path.push(['M', points[0].x, points[0].y]);\n for (let i = 1, length = points.length; i < length; i += 1) {\n const item = points[i];\n path.push(['L', item.x, item.y]);\n }\n\n if (isInCircle) {\n path.push(['Z']);\n }\n }\n\n return path;\n}\n\nfunction _convertArr(arr: number[], coord: Coordinate): any[] {\n const tmp = [arr[0]];\n for (let i = 1, len = arr.length; i < len; i = i + 2) {\n const point = coord.convert({\n x: arr[i],\n y: arr[i + 1],\n });\n tmp.push(point.x, point.y);\n }\n return tmp;\n}\nfunction _convertArcPath(path: PathCommand, coord: Coordinate): any[] {\n const { isTransposed } = coord;\n const r = path[1];\n const x = path[6];\n const y = path[7];\n const point = coord.convert({ x, y });\n const direction = isTransposed ? 0 : 1;\n return ['A', r, r, 0, 0, direction, point.x, point.y];\n}\n\nfunction _convertPolarPath(pre: PathCommand, cur: PathCommand, coord: Coordinate): PathCommand[] {\n const { isTransposed, startAngle, endAngle } = coord;\n const prePoint =\n pre[0].toLowerCase() === 'a'\n ? {\n x: pre[6],\n y: pre[7],\n }\n : {\n x: pre[1],\n y: pre[2],\n };\n const curPoint = {\n x: cur[1],\n y: cur[2],\n };\n const rst = [];\n const xDim = isTransposed ? 'y' : 'x';\n const angleRange = Math.abs(curPoint[xDim] - prePoint[xDim]) * (endAngle - startAngle);\n const direction = curPoint[xDim] >= prePoint[xDim] ? 1 : 0; // 圆弧的方向\n const flag = angleRange > Math.PI ? 1 : 0; // 大弧还是小弧标志位\n const convertPoint = coord.convert(curPoint);\n const r = getDistanceToCenter(coord, convertPoint);\n if (r >= 0.5) {\n // 小于1像素的圆在图像上无法识别\n if (angleRange === Math.PI * 2) {\n const middlePoint = {\n x: (curPoint.x + prePoint.x) / 2,\n y: (curPoint.y + prePoint.y) / 2,\n };\n const middleConvertPoint = coord.convert(middlePoint);\n rst.push(['A', r, r, 0, flag, direction, middleConvertPoint.x, middleConvertPoint.y]);\n rst.push(['A', r, r, 0, flag, direction, convertPoint.x, convertPoint.y]);\n } else {\n rst.push(['A', r, r, 0, flag, direction, convertPoint.x, convertPoint.y]);\n }\n }\n return rst;\n}\n\n// 当存在整体的圆时,去除圆前面和后面的线,防止出现直线穿过整个圆的情形\nfunction _filterFullCirleLine(path: PathCommand[]) {\n each(path, (subPath, index) => {\n const cur = subPath;\n if (cur[0].toLowerCase() === 'a') {\n const pre = path[index - 1];\n const next = path[index + 1];\n if (next && next[0].toLowerCase() === 'a') {\n if (pre && pre[0].toLowerCase() === 'l') {\n pre[0] = 'M';\n }\n } else if (pre && pre[0].toLowerCase() === 'a') {\n if (next && next[0].toLowerCase() === 'l') {\n next[0] = 'M';\n }\n }\n }\n });\n}\n\n/**\n * @ignore\n * 计算光滑的贝塞尔曲线\n */\nexport const smoothBezier = (\n points: Position[],\n smooth: number,\n isLoop: boolean,\n constraint: Position[]\n): Position[] => {\n const cps = [];\n const hasConstraint = !!constraint;\n\n let prevPoint: Position;\n let nextPoint: Position;\n let min: Position;\n let max: Position;\n let nextCp0: Position;\n let cp1: Position;\n let cp0: Position;\n\n if (hasConstraint) {\n [min, max] = constraint;\n for (let i = 0, l = points.length; i < l; i++) {\n const point = points[i];\n min = vec2.min([0, 0], min, point) as [number, number];\n max = vec2.max([0, 0], max, point) as [number, number];\n }\n }\n\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (i === 0 && !isLoop) {\n cp0 = point;\n } else if (i === len - 1 && !isLoop) {\n cp1 = point;\n cps.push(cp0);\n cps.push(cp1);\n } else {\n prevPoint = points[isLoop ? (i ? i - 1 : len - 1) : i - 1];\n nextPoint = points[isLoop ? (i + 1) % len : i + 1];\n\n let v: [number, number] = [0, 0];\n v = vec2.sub(v, nextPoint, prevPoint) as [number, number];\n v = vec2.scale(v, v, smooth) as [number, number];\n\n let d0 = vec2.distance(point, prevPoint);\n let d1 = vec2.distance(point, nextPoint);\n\n const sum = d0 + d1;\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n\n let v1 = vec2.scale([0, 0], v, -d0);\n let v2 = vec2.scale([0, 0], v, d1);\n\n cp1 = vec2.add([0, 0], point, v1) as Position;\n nextCp0 = vec2.add([0, 0], point, v2) as Position;\n\n // 下一个控制点必须在这个点和下一个点之间\n nextCp0 = vec2.min([0, 0], nextCp0, vec2.max([0, 0], nextPoint, point)) as Position;\n nextCp0 = vec2.max([0, 0], nextCp0, vec2.min([0, 0], nextPoint, point)) as Position;\n\n // 重新计算 cp1 的值\n v1 = vec2.sub([0, 0], nextCp0, point);\n v1 = vec2.scale([0, 0], v1, -d0 / d1);\n cp1 = vec2.add([0, 0], point, v1) as Position;\n\n // 上一个控制点必须要在上一个点和这一个点之间\n cp1 = vec2.min([0, 0], cp1, vec2.max([0, 0], prevPoint, point)) as Position;\n cp1 = vec2.max([0, 0], cp1, vec2.min([0, 0], prevPoint, point)) as Position;\n\n // 重新计算 nextCp0 的值\n v2 = vec2.sub([0, 0], point, cp1);\n v2 = vec2.scale([0, 0], v2, d1 / d0);\n nextCp0 = vec2.add([0, 0], point, v2) as Position;\n\n if (hasConstraint) {\n cp1 = vec2.max([0, 0], cp1, min) as Position;\n cp1 = vec2.min([0, 0], cp1, max) as Position;\n nextCp0 = vec2.max([0, 0], nextCp0, min) as Position;\n nextCp0 = vec2.min([0, 0], nextCp0, max) as Position;\n }\n\n cps.push(cp0);\n cps.push(cp1);\n cp0 = nextCp0;\n }\n }\n\n if (isLoop) {\n cps.push(cps.shift());\n }\n\n return cps;\n};\n\n/**\n * @ignore\n * 贝塞尔曲线\n */\nexport function catmullRom2bezier(crp: number[], z: boolean, constraint: Position[]): PathCommand[] {\n const isLoop = !!z;\n const pointList = [];\n for (let i = 0, l = crp.length; i < l; i += 2) {\n pointList.push([crp[i], crp[i + 1]]);\n }\n\n const controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint);\n const len = pointList.length;\n const d1 = [];\n\n let cp1: Position;\n let cp2: Position;\n let p: Position;\n\n for (let i = 0; i < len - 1; i++) {\n cp1 = controlPointList[i * 2];\n cp2 = controlPointList[i * 2 + 1];\n p = pointList[i + 1];\n\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n\n if (isLoop) {\n cp1 = controlPointList[len];\n cp2 = controlPointList[len + 1];\n p = pointList[0];\n\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]]);\n }\n return d1;\n}\n\n/**\n * @ignore\n * 将点连接成路径 path\n */\nexport function getLinePath(points: Point[], isInCircle?: boolean): PathCommand[] {\n return _points2path(points, isInCircle);\n}\n\n/**\n * @ignore\n * 根据关键点获取限定了范围的平滑线\n */\nexport function getSplinePath(points: Point[], isInCircle?: boolean, constaint?: Position[]): PathCommand[] {\n const data = [];\n const first = points[0];\n let prePoint = null;\n if (points.length <= 2) {\n // 两点以内直接绘制成路径\n return getLinePath(points, isInCircle);\n }\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (!prePoint || !(prePoint.x === point.x && prePoint.y === point.y)) {\n data.push(point.x);\n data.push(point.y);\n prePoint = point;\n }\n }\n const constraint = constaint || [\n // 范围\n [0, 0],\n [1, 1],\n ];\n const splinePath = catmullRom2bezier(data, isInCircle, constraint);\n splinePath.unshift(['M', first.x, first.y]);\n return splinePath;\n}\n\n/**\n * @ignore\n * 将归一化后的路径数据转换成坐标\n */\nexport function convertNormalPath(coord, path: PathCommand[]): PathCommand[] {\n const tmp = [];\n each(path, (subPath) => {\n const action = subPath[0];\n switch (action.toLowerCase()) {\n case 'm':\n case 'l':\n case 'c':\n tmp.push(_convertArr(subPath, coord));\n break;\n case 'a':\n tmp.push(_convertArcPath(subPath, coord));\n break;\n case 'z':\n default:\n tmp.push(subPath);\n break;\n }\n });\n return tmp;\n}\n\n/**\n * @ignore\n * 将路径转换为极坐标下的真实路径\n */\nexport function convertPolarPath(coord, path: PathCommand[]): PathCommand[] {\n let tmp = [];\n let pre: PathCommand;\n let cur: PathCommand;\n let transposed: boolean;\n let equals: boolean;\n each(path, (subPath, index) => {\n const action = subPath[0];\n\n switch (action.toLowerCase()) {\n case 'm':\n case 'c':\n case 'q':\n tmp.push(_convertArr(subPath, coord));\n break;\n case 'l':\n pre = path[index - 1];\n cur = subPath;\n transposed = coord.isTransposed;\n // 是否半径相同,转换成圆弧\n equals = transposed ? pre[pre.length - 2] === cur[1] : pre[pre.length - 1] === cur[2];\n if (equals) {\n tmp = tmp.concat(_convertPolarPath(pre, cur, coord));\n } else {\n // y 不相等,所以直接转换\n tmp.push(_convertArr(subPath, coord));\n }\n break;\n case 'a':\n tmp.push(_convertArcPath(subPath, coord));\n break;\n case 'z':\n default:\n tmp.push(subPath);\n break;\n }\n });\n _filterFullCirleLine(tmp); // 过滤多余的直线\n return tmp;\n}\n","import { each, isArray } from '@antv/util';\nimport { View } from '../../chart';\nimport { BBox, PathCommand, Point } from '../../dependents';\nimport Geometry from '../../geometry/base';\nimport Element from '../../geometry/element/';\nimport { catmullRom2bezier, getLinePath } from '../../geometry/shape/util/path';\nimport { toPoints } from '../../util/bbox';\nimport { isPolygonsIntersect } from '@antv/path-util';\nimport { ComponentOption, IInteractionContext, LooseObject } from '../../interface';\n\nfunction getMaskBBox(context: IInteractionContext, tolerance: number) {\n const event = context.event;\n const maskShape = event.target;\n return getMaskBBoxByShape(maskShape, tolerance);\n}\n\n/**\n * 如果 mask BBox 过小则不返回\n */\nfunction isValidMaskBBox(maskShape, tolerance: number) {\n const maskBBox = maskShape.getCanvasBBox();\n const { width, height } = maskBBox;\n return width > 0 && height > 0 && (width >= tolerance || height >= tolerance);\n}\n\n/**\n * 通过 maskShape 获取 mask 的 canvasBBox\n * @param maskShape\n * @param tolerance\n * @returns\n */\nfunction getMaskBBoxByShape(maskShape, tolerance: number) {\n const maskBBox = maskShape.getCanvasBBox();\n return isValidMaskBBox(maskShape, tolerance) ? maskBBox : null;\n}\n\n/**\n * 获取 multiple 模式下 mask 的 canvasBBox 数组\n * @param context 上下文\n * @param tolerance box 宽高小于则不返回\n * @returns\n */\nfunction getMultiMaskBBoxList(context: IInteractionContext, tolerance: number) {\n const { maskShapes } = context.event;\n return maskShapes.map((maskShape) => getMaskBBoxByShape(maskShape, tolerance)).filter((bBox) => !!bBox);\n}\n\nfunction getMaskPath(context: IInteractionContext, tolerance: number) {\n const event = context.event;\n const maskShape = event.target;\n return getMaskPathByMaskShape(maskShape, tolerance);\n}\n\n/**\n * 通过 maskShape 获取 mask path\n * @param maskShape\n * @param tolerance box 宽高小于则不返回\n * @returns\n */\nfunction getMaskPathByMaskShape(maskShape, tolerance: number) {\n return isValidMaskBBox(maskShape, tolerance) ? maskShape.attr('path') : null;\n}\n\n/**\n * 获取 multiple 模式下 mask path 数组\n * @param context 上下文\n * @param tolerance box 宽高小于则不返回\n * @returns\n */\nfunction getMultiMaskPathList(context: IInteractionContext, tolerance: number) {\n const { maskShapes } = context.event;\n return maskShapes.map((maskShape) => getMaskPathByMaskShape(maskShape, tolerance));\n}\n\n/**\n * 获取当前事件相关的图表元素\n * @param context 交互的上下文\n * @ignore\n */\nexport function getCurrentElement(context: IInteractionContext): Element {\n const event = context.event;\n let element;\n const target = event.target;\n if (target) {\n element = target.get('element');\n }\n return element;\n}\n\n/**\n * 获取委托对象\n * @param context 上下文\n * @ignore\n */\nexport function getDelegationObject(context: IInteractionContext): LooseObject {\n const event = context.event;\n const target = event.target;\n let delegateObject;\n if (target) {\n delegateObject = target.get('delegateObject');\n }\n return delegateObject;\n}\n\nexport function isElementChange(context: IInteractionContext) {\n const event = context.event.gEvent;\n // 在同一个 element 内部移动,label 和 shape 之间\n if (event && event.fromShape && event.toShape && event.fromShape.get('element') === event.toShape.get('element')) {\n return false;\n }\n return true;\n}\n\n/**\n * 是否是列表组件\n * @param delegateObject 委托对象\n * @ignore\n */\nexport function isList(delegateObject: LooseObject): boolean {\n return delegateObject && delegateObject.component && delegateObject.component.isList();\n}\n\n/**\n * 是否是滑块组件\n * @param delegateObject 委托对象\n * @ignore\n */\nexport function isSlider(delegateObject: LooseObject): boolean {\n return delegateObject && delegateObject.component && delegateObject.component.isSlider();\n}\n\n/**\n * 是否由 mask 触发\n * @param context 上下文\n * @ignore\n */\nexport function isMask(context: IInteractionContext): boolean {\n const event = context.event;\n const target = event.target;\n return (target && target?.get('name') === 'mask') || isMultipleMask(context);\n}\n\n/**\n * 是否由 multiple mask 触发\n * @param context\n * @returns\n */\nexport function isMultipleMask(context: IInteractionContext): boolean {\n return context.event.target?.get('name') === 'multi-mask';\n}\n\n/**\n * 获取被遮挡的 elements\n * @param context 上下文\n * @ignore\n */\nexport function getMaskedElements(context: IInteractionContext, tolerance: number): Element[] {\n const target = context.event.target;\n\n // multiple 模式下\n if (isMultipleMask(context)) {\n return getMultiMaskedElements(context, tolerance);\n }\n\n // 正常模式下\n if (target.get('type') === 'path') {\n const maskPath = getMaskPath(context, tolerance);\n if (!maskPath) {\n return;\n }\n return getElementsByPath(context.view, maskPath);\n }\n const maskBBox = getMaskBBox(context, tolerance);\n // 如果 bbox 过小则不返回\n if (!maskBBox) {\n return null;\n }\n return getIntersectElements(context.view, maskBBox);\n}\n\n/**\n * 获取 multiple 模式下被 mask 遮挡的 elements\n * @param context 上下文\n * @returns\n */\nfunction getMultiMaskedElements(context: IInteractionContext, tolerance: number): Element[] {\n const { target } = context.event;\n if (target.get('type') === 'path') {\n const maskPathList = getMultiMaskPathList(context, tolerance);\n if (maskPathList.length > 0) {\n return maskPathList.flatMap((maskPath) => getElementsByPath(context.view, maskPath));\n }\n return null;\n }\n const maskBBoxList = getMultiMaskBBoxList(context, tolerance);\n if (maskBBoxList.length > 0) {\n return maskBBoxList.flatMap((maskBBox) => getIntersectElements(context.view, maskBBox));\n }\n return null;\n}\n\n/**\n * @ignore\n */\nexport function getSiblingMaskElements(context: IInteractionContext, sibling: View, tolerance: number) {\n // multiple 模式下\n if (isMultipleMask(context)) {\n return getSiblingMultiMaskedElements(context, sibling, tolerance);\n }\n\n // 正常模式下\n const maskBBox = getMaskBBox(context, tolerance);\n // 如果 bbox 过小则不返回\n if (!maskBBox) {\n return null;\n }\n return getSiblingMaskElementsByBBox(maskBBox, context, sibling);\n}\n\n/**\n * 通过 mashBBox 获取 sibling 模式下被 mask 遮挡的 elements\n * @param maskBBox\n * @param context 上下文\n * @param sibling sibling view\n * @returns\n */\nfunction getSiblingMaskElementsByBBox(maskBBox, context: IInteractionContext, sibling: View) {\n const view = context.view;\n const start = getSiblingPoint(view, sibling, { x: maskBBox.x, y: maskBBox.y });\n const end = getSiblingPoint(view, sibling, { x: maskBBox.maxX, y: maskBBox.maxY });\n const box = {\n minX: start.x,\n minY: start.y,\n maxX: end.x,\n maxY: end.y,\n };\n return getIntersectElements(sibling, box);\n}\n\n/**\n * 获取 sibling 模式下被 multiple mask 遮挡的 elements\n * @param context 上下文\n * @param sibling sibling view\n * @param tolerance box 宽高小于则不返回\n * @returns\n */\nfunction getSiblingMultiMaskedElements(context: IInteractionContext, sibling: View, tolerance: number): Element[] {\n const maskBBoxList = getMultiMaskBBoxList(context, tolerance);\n if (maskBBoxList.length > 0) {\n return maskBBoxList.flatMap((maskBBox) => getSiblingMaskElementsByBBox(maskBBox, context, sibling));\n }\n return null;\n}\n\n/**\n * 获取所有的图表元素\n * @param view View/Chart\n * @ignore\n */\nexport function getElements(view: View): Element[] {\n const geometries = view.geometries;\n let rst: Element[] = [];\n each(geometries, (geom: Geometry) => {\n const elements = geom.elements;\n rst = rst.concat(elements);\n });\n if (view.views && view.views.length) {\n each(view.views, (subView) => {\n rst = rst.concat(getElements(subView));\n });\n }\n return rst;\n}\n\n/**\n * 获取所有的图表元素\n * @param view View/Chart\n * @param field 字段名\n * @param value 字段值\n * @ignore\n */\nexport function getElementsByField(view: View, field: string, value: any) {\n const elements = getElements(view);\n return elements.filter((el) => {\n return getElementValue(el, field) === value;\n });\n}\n\n/**\n * 根据状态名获取图表元素\n * @param view View/Chart\n * @param stateName 状态名\n * @ignore\n */\nexport function getElementsByState(view: View, stateName: string): Element[] {\n const geometries = view.geometries;\n let rst: Element[] = [];\n each(geometries, (geom: Geometry) => {\n const elements = geom.getElementsBy((el) => el.hasState(stateName));\n rst = rst.concat(elements);\n });\n return rst;\n}\n\n/**\n * 获取图表元素对应字段的值\n * @param element 图表元素\n * @param field 字段名\n * @ignore\n */\nexport function getElementValue(element: Element, field) {\n const model = element.getModel();\n const record = model.data;\n let value;\n if (isArray(record)) {\n value = record[0][field];\n } else {\n value = record[field];\n }\n return value;\n}\n\n/**\n * 两个包围盒是否相交\n * @param box1 包围盒1\n * @param box2 包围盒2\n * @ignore\n */\nexport function intersectRect(box1, box2) {\n return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY);\n}\n\n/**\n * 获取包围盒内的图表元素\n * @param view View/Chart\n * @param box 包围盒\n * @ignore\n */\nexport function getIntersectElements(view: View, box) {\n const elements = getElements(view);\n const rst = [];\n each(elements, (el) => {\n const shape = el.shape;\n const shapeBBox = shape.getCanvasBBox();\n if (intersectRect(box, shapeBBox)) {\n rst.push(el);\n }\n });\n return rst;\n}\nfunction pathToPoints(path: any[]) {\n const points = [];\n each(path, (seg) => {\n const command = seg[0];\n if (command !== 'A') {\n for (let i = 1; i < seg.length; i = i + 2) {\n points.push([seg[i], seg[i + 1]]);\n }\n } else {\n const length = seg.length;\n points.push([seg[length - 2], seg[length - 1]]);\n }\n });\n return points;\n}\n/**\n * 获取包围盒内的图表元素\n * @param view View/Chart\n * @param path 路径\n * @ignore\n */\nexport function getElementsByPath(view: View, path: any[]) {\n const elements = getElements(view);\n const points = pathToPoints(path);\n const rst = elements.filter((el: Element) => {\n const shape = el.shape;\n let shapePoints;\n if (shape.get('type') === 'path') {\n shapePoints = pathToPoints(shape.attr('path'));\n } else {\n const shapeBBox = shape.getCanvasBBox();\n shapePoints = toPoints(shapeBBox);\n }\n return isPolygonsIntersect(points, shapePoints);\n });\n return rst;\n}\n\n/**\n * 获取当前 View 的所有组件\n * @param view View/Chart\n * @ignore\n */\nexport function getComponents(view) {\n return view.getComponents().map((co: ComponentOption) => co.component);\n}\n\n/** @ignore */\nexport function distance(p1: Point, p2: Point) {\n const dx = p2.x - p1.x;\n const dy = p2.y - p1.y;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\n/** @ignore */\nexport function getSpline(points: Point[], z: boolean): PathCommand[] {\n if (points.length <= 2) {\n return getLinePath(points, false);\n }\n const first = points[0];\n const arr = [];\n each(points, (point) => {\n arr.push(point.x);\n arr.push(point.y);\n });\n const path = catmullRom2bezier(arr, z, null);\n path.unshift(['M', first.x, first.y]);\n return path;\n}\n\n/**\n * 检测点是否在包围盒内\n * @param box 包围盒\n * @param point 点\n * @ignore\n */\nexport function isInBox(box: BBox, point: Point) {\n return box.x <= point.x && box.maxX >= point.x && box.y <= point.y && box.maxY > point.y;\n}\n\n/**\n * 获取同 view 同一级的 views\n * @param view 当前 view\n * @returns 同一级的 views\n * @ignore\n */\nexport function getSilbings(view: View): View[] {\n const parent = view.parent;\n let siblings = null;\n if (parent) {\n siblings = parent.views.filter((sub) => sub !== view);\n }\n return siblings;\n}\n\nfunction point2Normalize(view: View, point: Point): Point {\n const coord = view.getCoordinate();\n return coord.invert(point);\n}\n/**\n * 将 view 上的一点转换成另一个 view 的点\n * @param view 当前的 view\n * @param sibling 同一层级的 view\n * @param point 指定点\n * @ignore\n */\nexport function getSiblingPoint(view: View, sibling: View, point: Point): Point {\n const normalPoint = point2Normalize(view, point);\n return sibling.getCoordinate().convert(normalPoint);\n}\n\n/**\n * 是否在记录中,临时因为所有的 view 中的数据不是引用,而使用的方法\n * 不同 view 上对数据的引用不相等,导致无法直接用 includes\n * 假设 x, y 值相等时是同一条数据,这个假设不完全正确,而改成 isEqual 则成本太高\n * 后面改成同一个引用时可以修改回来\n * @param records\n * @param record\n * @param xFiled\n * @param yField\n * @returns\n * @ignore\n */\nexport function isInRecords(records: object[], record: object, xFiled: string, yField: string) {\n let isIn = false;\n each(records, (r) => {\n if (r[xFiled] === record[xFiled] && r[yField] === record[yField]) {\n isIn = true;\n return false;\n }\n });\n return isIn;\n}\n\n// 级联获取 field 对应的 scale,如果 view 上没有,遍历子 view\nexport function getScaleByField(view: View, field: string) {\n let scale = view.getScaleByField(field);\n if (!scale && view.views) {\n each(view.views, (subView) => {\n scale = getScaleByField(subView, field);\n if (scale) {\n return false; // 终止循环\n }\n });\n }\n return scale;\n}\n","import { each, get } from '@antv/util';\nimport { View } from '../chart';\nimport { BBox, IShape, Point } from '../dependents';\nimport { IAction, IInteractionContext, LooseObject } from '../interface';\nimport { getComponents, isInBox } from './action/util';\n\n/**\n * 交互的上下文\n */\nexport default class Context implements IInteractionContext {\n /** 当前所有的 Action */\n public actions: IAction[] = [];\n /** 当前 View 实例 */\n public view: View;\n /** 当前事件对象 */\n public event: LooseObject = null;\n\n private cacheMap: LooseObject = {};\n\n constructor(view: View) {\n this.view = view;\n }\n\n /**\n * 缓存信息\n * @param params 缓存的字段\n * - 如果一个字段则获取缓存\n * - 两个字段则设置缓存\n */\n public cache(...params) {\n if (params.length === 1) {\n return this.cacheMap[params[0]];\n } else if (params.length === 2) {\n this.cacheMap[params[0]] = params[1];\n }\n }\n\n /**\n * 获取 Action\n * @param name Action 的名称\n */\n public getAction(name: string): IAction {\n return this.actions.find((action) => action.name === name);\n }\n\n /**\n * 获取 Action\n * @param action Action 对象\n */\n public addAction(action: IAction) {\n this.actions.push(action);\n }\n\n /**\n * 移除 Action\n * @param action Action 对象\n */\n public removeAction(action: IAction) {\n const actions = this.actions;\n const index = this.actions.indexOf(action);\n if (index >= 0) {\n actions.splice(index, 1);\n }\n }\n\n /**\n * 获取当前的点\n */\n public getCurrentPoint(): Point {\n const event = this.event;\n if (event) {\n if (event.target instanceof HTMLElement) {\n const canvas = this.view.getCanvas();\n const point = canvas.getPointByClient(event.clientX, event.clientY);\n return point;\n } else {\n return {\n x: event.x,\n y: event.y,\n };\n }\n }\n return null;\n }\n\n /**\n * 获取当前 shape\n * @returns current shape\n */\n public getCurrentShape(): IShape {\n return get(this.event, ['gEvent', 'shape']);\n }\n\n /**\n * 当前的触发是否在 View 内\n */\n public isInPlot() {\n const point = this.getCurrentPoint();\n if (point) {\n return this.view.isPointInPlot(point);\n }\n return false;\n }\n\n /**\n * 是否在指定的图形内\n * @param name shape 的 name\n */\n public isInShape(name) {\n const shape = this.getCurrentShape(); // 不再考虑在 shape 的 parent 内的情况\n if (shape) {\n return shape.get('name') === name;\n }\n return false;\n }\n\n /**\n * 当前的触发是组件内部\n * @param name 组件名,可以为空\n */\n public isInComponent(name?: string) {\n const components = getComponents(this.view);\n const point = this.getCurrentPoint();\n if (point) {\n return !!components.find((component) => {\n const bbox = component.getBBox() as BBox;\n if (name) {\n return component.get('name') === name && isInBox(bbox, point);\n } else {\n return isInBox(bbox, point);\n }\n });\n }\n return false;\n }\n\n /**\n * 销毁\n */\n public destroy() {\n // 先销毁 action 再清空,一边遍历,一边删除,所以数组需要更新引用\n each(this.actions.slice(), (action) => {\n action.destroy();\n });\n this.view = null;\n this.event = null;\n this.actions = null;\n this.cacheMap = null;\n }\n}\n","import { View } from '../chart';\nimport { LooseObject } from '../interface';\n\nexport type InteractionConstructor = new (view: View, cfg: LooseObject) => Interaction;\n\n/**\n * 交互的基类。\n */\nexport default class Interaction {\n /** view 或者 chart */\n protected view: View;\n /** 配置项 */\n protected cfg: LooseObject;\n\n constructor(view: View, cfg: LooseObject) {\n this.view = view;\n this.cfg = cfg;\n }\n\n /**\n * 初始化。\n */\n public init() {\n this.initEvents();\n }\n\n /**\n * 绑定事件\n */\n protected initEvents() {}\n\n /**\n * 销毁事件\n */\n protected clearEvents() {}\n\n /**\n * 销毁。\n */\n public destroy() {\n this.clearEvents();\n }\n}\n","import { each, isArray, isFunction, isString, debounce, throttle } from '@antv/util';\nimport { View } from '../chart';\nimport { ActionCallback, IAction, IInteractionContext, LooseObject } from '../interface';\nimport { createAction, createCallbackAction } from './action/register';\nimport InteractionContext from './context';\nimport Interaction from './interaction';\n\n// 将字符串转换成 action\nexport function parseAction(actionStr: string, context: IInteractionContext, arg?: any): ActionObject {\n const arr = actionStr.split(':');\n const actionName = arr[0];\n // 如果已经初始化过 action ,则直接引用之前的 action\n const action = context.getAction(actionName) || createAction(actionName, context);\n if (!action) {\n throw new Error(`There is no action named ${actionName}`);\n }\n const methodName = arr[1];\n return {\n action,\n methodName,\n arg,\n };\n}\n\n// 执行 Action\nfunction executeAction(actionObject: ActionObject) {\n const { action, methodName, arg } = actionObject;\n if (action[methodName]) {\n action[methodName](arg);\n } else {\n throw new Error(`Action(${action.name}) doesn't have a method called ${methodName}`);\n }\n}\n\nconst STEP_NAMES = {\n START: 'start',\n SHOW_ENABLE: 'showEnable',\n END: 'end',\n ROLLBACK: 'rollback',\n PROCESSING: 'processing',\n};\n\n/** 交互环节的定义 */\nexport interface InteractionStep {\n /**\n * 触发事件,支持 view,chart 的各种事件,也支持 document、window 的事件\n */\n trigger: string;\n /**\n * 是否可以触发 action\n * @param context - 交互的上下文\n */\n isEnable?: (context: IInteractionContext) => boolean;\n /**\n * 反馈,支持三种方式:\n * - action:method : action 的名字和方法的组合\n * - [’action1:method1‘, ’action2:method‘]\n * - ActionCallback: 回调函数\n */\n action: string | string[] | ActionCallback;\n /**\n * 反馈,具体 action method 的参数:\n * - 当传递多个 action 时,args 必须是一个数组\n */\n arg?: any | any[];\n /**\n * 回调函数,action 执行后执行\n */\n callback?: (context: IInteractionContext) => void;\n /**\n * @private\n * 不需要用户传入,通过上面的属性计算出来的属性\n */\n actionObject?: ActionObject | ActionObject[];\n /**\n * 在一个环节内是否只允许执行一次\n */\n once?: boolean;\n /**\n * 是否增加节流\n */\n throttle?: ThrottleOption;\n /**\n * 是否延迟\n */\n debounce?: DebounceOption;\n}\n\n// action 执行时支持 debounce 和 throttle,可以参考:https://css-tricks.com/debouncing-throttling-explained-examples/\n/**\n * debounce 的配置\n */\nexport interface DebounceOption {\n /**\n * 等待时间\n */\n wait: number;\n /**\n * 是否马上执行\n */\n immediate?: boolean;\n}\n\n/**\n * throttle 的配置\n */\nexport interface ThrottleOption {\n /**\n * 等待时间\n */\n wait: number;\n /**\n * 马上就执行\n */\n leading?: boolean;\n /**\n * 执行完毕后再执行一次\n */\n trailing?: boolean;\n}\n\n/** 缓存 action 对象,仅用于当前文件 */\ninterface ActionObject {\n /**\n * 缓存的 action\n */\n action: IAction;\n /**\n * action 的方法\n */\n methodName: string;\n /**\n * 用户传递的 action 方法的参数\n */\n arg?: any;\n}\n\n/** 交互的所有环节 */\nexport interface InteractionSteps {\n /**\n * 显示交互可以进行\n */\n showEnable?: InteractionStep[];\n /**\n * 交互开始\n */\n start?: InteractionStep[];\n /**\n * 交互持续\n */\n processing?: InteractionStep[];\n /**\n * 交互结束\n */\n end?: InteractionStep[];\n /**\n * 交互回滚\n */\n rollback?: InteractionStep[];\n}\n\n/**\n * 支持语法的交互类\n */\nexport default class GrammarInteraction extends Interaction {\n // 存储的交互环节\n private steps: InteractionSteps;\n /** 当前执行到的阶段 */\n public currentStepName: string;\n /**\n * 当前交互的上下文\n */\n public context: IInteractionContext;\n\n private callbackCaches: LooseObject = {};\n // 某个触发和反馈在本环节是否执行或\n private emitCaches: LooseObject = {};\n\n constructor(view: View, steps: InteractionSteps) {\n super(view, steps);\n this.steps = steps;\n }\n\n /**\n * 初始化\n */\n public init() {\n this.initContext();\n super.init();\n }\n\n /**\n * 清理资源\n */\n public destroy() {\n super.destroy(); // 先清理事件\n this.steps = null;\n if (this.context) {\n this.context.destroy();\n this.context = null;\n }\n\n this.callbackCaches = null;\n this.view = null;\n }\n\n /**\n * 绑定事件\n */\n protected initEvents() {\n each(this.steps, (stepArr, stepName) => {\n each(stepArr, (step) => {\n const callback = this.getActionCallback(stepName, step);\n if (callback) {\n // 如果存在 callback,才绑定,有时候会出现无 callback 的情况\n this.bindEvent(step.trigger, callback);\n }\n });\n });\n }\n\n /**\n * 清理绑定的事件\n */\n protected clearEvents() {\n each(this.steps, (stepArr, stepName) => {\n each(stepArr, (step) => {\n const callback = this.getActionCallback(stepName, step);\n if (callback) {\n this.offEvent(step.trigger, callback);\n }\n });\n });\n }\n\n // 初始化上下文,并初始化 action\n private initContext() {\n const view = this.view;\n const context = new InteractionContext(view);\n this.context = context;\n const steps = this.steps;\n // 生成具体的 Action\n each(steps, (subSteps: InteractionStep[]) => {\n each(subSteps, (step: InteractionStep) => {\n if (isFunction(step.action)) {\n // 如果传入回调函数,则直接生成 CallbackAction\n step.actionObject = {\n action: createCallbackAction(step.action, context),\n methodName: 'execute',\n };\n } else if (isString(step.action)) {\n // 如果是字符串\n step.actionObject = parseAction(step.action, context, step.arg);\n } else if (isArray(step.action)) {\n // 如果是数组\n const actionArr = step.action;\n const argArr = isArray(step.arg) ? step.arg : [step.arg];\n step.actionObject = [];\n each(actionArr, (actionStr, idx) => {\n (step.actionObject as ActionObject[]).push(parseAction(actionStr, context, argArr[idx]));\n });\n }\n // 如果 action 既不是字符串,也不是函数,则不会生成 actionObject\n });\n });\n }\n\n // 是否允许指定阶段名称执行\n private isAllowStep(stepName: string): boolean {\n const currentStepName = this.currentStepName;\n const steps = this.steps;\n // 相同的阶段允许同时执行\n if (currentStepName === stepName) {\n return true;\n }\n\n if (stepName === STEP_NAMES.SHOW_ENABLE) {\n // 示能在整个过程中都可用\n return true;\n }\n\n if (stepName === STEP_NAMES.PROCESSING) {\n // 只有当前是 start 时,才允许 processing\n return currentStepName === STEP_NAMES.START;\n }\n\n if (stepName === STEP_NAMES.START) {\n // 如果当前是 processing,则无法 start,必须等待 end 后才能执行\n return currentStepName !== STEP_NAMES.PROCESSING;\n }\n\n if (stepName === STEP_NAMES.END) {\n return currentStepName === STEP_NAMES.PROCESSING || currentStepName === STEP_NAMES.START;\n }\n\n if (stepName === STEP_NAMES.ROLLBACK) {\n if (steps[STEP_NAMES.END]) {\n // 如果定义了 end, 只有 end 时才允许回滚\n return currentStepName === STEP_NAMES.END;\n } else if (currentStepName === STEP_NAMES.START) {\n // 如果未定义 end, 则判断是否是开始\n return true;\n }\n }\n return false;\n }\n\n // 具体的指定阶段是否允许执行\n private isAllowExecute(stepName: string, step: InteractionStep): boolean {\n if (this.isAllowStep(stepName)) {\n const key = this.getKey(stepName, step);\n // 如果是在本环节内仅允许触发一次,同时已经触发过,则不允许再触发\n if (step.once && this.emitCaches[key]) {\n return false;\n }\n // 如果是允许的阶段,则验证 isEnable 方法\n if (step.isEnable) {\n return step.isEnable(this.context);\n }\n return true; // 如果没有 isEnable 则允许执行\n }\n return false;\n }\n\n private enterStep(stepName: string) {\n this.currentStepName = stepName;\n this.emitCaches = {}; // 清除所有本环节触发的缓存\n }\n\n // 执行完某个触发和反馈(子环节)\n private afterExecute(stepName: string, step) {\n // show enable 不计入正常的流程,其他情况则设置当前的 step\n if (stepName !== STEP_NAMES.SHOW_ENABLE && this.currentStepName !== stepName) {\n this.enterStep(stepName);\n }\n const key = this.getKey(stepName, step);\n // 一旦执行,则缓存标记为,一直保持到跳出改环节\n this.emitCaches[key] = true;\n }\n // 获取某个环节的唯一的键值\n private getKey(stepName, step) {\n return stepName + step.trigger + step.action;\n }\n\n // 获取 step 的回调函数,如果已经生成,则直接返回,如果未生成,则创建\n private getActionCallback(stepName: string, step: InteractionStep): (e: object) => void {\n const context = this.context;\n const callbackCaches = this.callbackCaches;\n const actionObject = step.actionObject;\n if (step.action && actionObject) {\n const key = this.getKey(stepName, step);\n if (!callbackCaches[key]) {\n // 动态生成执行的方法,执行对应 action 的名称\n const actionCallback = (event) => {\n context.event = event; // 保证检测时的 event\n if (this.isAllowExecute(stepName, step)) {\n // 如果是数组时,则依次执行\n if (isArray(actionObject)) {\n each(actionObject, (obj: ActionObject) => {\n context.event = event; // 可能触发新的事件,保证执行前的 context.event 是正确的\n executeAction(obj);\n });\n } else {\n context.event = event; // 保证执行前的 context.event 是正确的\n executeAction(actionObject);\n }\n this.afterExecute(stepName, step);\n if (step.callback) {\n context.event = event; // 保证执行前的 context.event 是正确的\n step.callback(context);\n }\n } else {\n // 如果未通过验证,则事件不要绑定在上面\n context.event = null;\n }\n };\n // 如果设置了 debounce\n if (step.debounce) {\n callbackCaches[key] = debounce(actionCallback, step.debounce.wait, step.debounce.immediate);\n } else if (step.throttle) {\n // 设置 throttle\n callbackCaches[key] = throttle(actionCallback, step.throttle.wait, {\n leading: step.throttle.leading,\n trailing: step.throttle.trailing,\n });\n } else {\n // 直接设置\n callbackCaches[key] = actionCallback;\n }\n }\n return callbackCaches[key];\n }\n return null;\n }\n\n private bindEvent(eventName, callback) {\n const nameArr = eventName.split(':');\n if (nameArr[0] === 'window') {\n window.addEventListener(nameArr[1], callback);\n } else if (nameArr[0] === 'document') {\n document.addEventListener(nameArr[1], callback);\n } else {\n this.view.on(eventName, callback);\n }\n }\n\n private offEvent(eventName, callback) {\n const nameArr = eventName.split(':');\n if (nameArr[0] === 'window') {\n window.removeEventListener(nameArr[1], callback);\n } else if (nameArr[0] === 'document') {\n document.removeEventListener(nameArr[1], callback);\n } else {\n this.view.off(eventName, callback);\n }\n }\n}\n","import { clone, isPlainObject, lowerCase, mix } from '@antv/util';\nimport { View } from '../chart';\nimport { LooseObject } from '../interface';\nimport GrammarInteraction, { InteractionSteps } from './grammar-interaction';\nimport { InteractionConstructor } from './interaction';\n\nconst Interactions: LooseObject = {};\n\n/**\n * 根据交互行为名字获取对应的交互类\n * @param name 交互名字\n * @returns 交互类\n */\nexport function getInteraction(name: string): InteractionSteps | InteractionConstructor {\n return Interactions[lowerCase(name)];\n}\n\n/**\n * 注册交互行为\n * @param name 交互行为名字\n * @param interaction 交互类\n */\nexport function registerInteraction(name: string, interaction: InteractionSteps | InteractionConstructor) {\n Interactions[lowerCase(name)] = interaction;\n}\n\n/**\n * 创建交互实例\n * @param name 交互名\n * @param view 交互应用的 View 实例\n * @param cfg 交互行为配置\n */\nexport function createInteraction(name: string, view: View, cfg?: LooseObject) {\n const interaciton = getInteraction(name);\n if (!interaciton) {\n return null;\n }\n if (isPlainObject(interaciton)) {\n // 如果不 clone 则会多个 interaction 实例共享 step 的定义\n const steps = mix(clone(interaciton), cfg) as InteractionSteps;\n return new GrammarInteraction(view, steps);\n } else {\n const cls = interaciton as InteractionConstructor;\n return new cls(view, cfg);\n }\n}\n\nexport { default as Interaction } from './interaction';\nexport { Action, registerAction, getActionClass } from './action';\n","import { TOOLTIP_CSS_CONST } from '@antv/component';\nimport { ext } from '@antv/matrix-util';\nimport { deepMix } from '@antv/util';\nimport Element from '../../geometry/element';\nimport { LooseObject, StyleSheet } from '../../interface';\nimport { getAngle } from '../../util/graphics';\n\n/**\n * 根据样式表创建 axis 组件主题样式\n * @param styleSheet\n */\nfunction createAxisStyles(styleSheet: StyleSheet): LooseObject {\n return {\n title: {\n autoRotate: true,\n position: 'center', // start, center, end\n spacing: styleSheet.axisTitleSpacing,\n style: {\n fill: styleSheet.axisTitleTextFillColor,\n fontSize: styleSheet.axisTitleTextFontSize,\n lineHeight: styleSheet.axisTitleTextLineHeight,\n textBaseline: 'middle',\n fontFamily: styleSheet.fontFamily,\n },\n iconStyle: {\n fill: styleSheet.axisDescriptionIconFillColor\n }\n },\n label: {\n autoRotate: false,\n autoEllipsis: false,\n autoHide: { type: 'equidistance', cfg: { minGap: 6 } },\n offset: styleSheet.axisLabelOffset,\n style: {\n fill: styleSheet.axisLabelFillColor,\n fontSize: styleSheet.axisLabelFontSize,\n lineHeight: styleSheet.axisLabelLineHeight,\n fontFamily: styleSheet.fontFamily,\n },\n },\n line: {\n style: {\n lineWidth: styleSheet.axisLineBorder,\n stroke: styleSheet.axisLineBorderColor,\n },\n },\n grid: {\n line: {\n type: 'line',\n style: {\n stroke: styleSheet.axisGridBorderColor,\n lineWidth: styleSheet.axisGridBorder,\n lineDash: styleSheet.axisGridLineDash,\n },\n },\n alignTick: true,\n animate: true,\n },\n tickLine: {\n style: {\n lineWidth: styleSheet.axisTickLineBorder,\n stroke: styleSheet.axisTickLineBorderColor,\n },\n alignTick: true, // 默认刻度线和文本对齐\n length: styleSheet.axisTickLineLength,\n },\n subTickLine: null,\n animate: true,\n };\n}\n\n/**\n *\n * @param styleSheet\n */\n// export function\n\n/**\n * 根据样式表创建 legend 组件主题样式\n * @param styleSheet\n */\nfunction createLegendStyles(styleSheet: StyleSheet): LooseObject {\n return {\n title: null,\n marker: {\n symbol: 'circle',\n spacing: styleSheet.legendMarkerSpacing,\n style: {\n r: styleSheet.legendCircleMarkerSize,\n fill: styleSheet.legendMarkerColor,\n },\n },\n itemName: {\n spacing: 5, // 如果右边有 value 使用这个间距\n style: {\n fill: styleSheet.legendItemNameFillColor,\n fontFamily: styleSheet.fontFamily,\n fontSize: styleSheet.legendItemNameFontSize,\n lineHeight: styleSheet.legendItemNameLineHeight,\n fontWeight: styleSheet.legendItemNameFontWeight,\n textAlign: 'start',\n textBaseline: 'middle',\n },\n },\n itemStates: {\n active: {\n nameStyle: {\n opacity: 0.8,\n },\n },\n unchecked: {\n nameStyle: {\n fill: '#D8D8D8',\n },\n markerStyle: {\n fill: '#D8D8D8',\n stroke: '#D8D8D8',\n },\n },\n inactive: {\n nameStyle: {\n fill: '#D8D8D8',\n },\n markerStyle: {\n opacity: 0.2,\n },\n },\n },\n flipPage: true,\n pageNavigator: {\n marker: {\n style: {\n size: styleSheet.legendPageNavigatorMarkerSize,\n inactiveFill: styleSheet.legendPageNavigatorMarkerInactiveFillColor,\n inactiveOpacity: styleSheet.legendPageNavigatorMarkerInactiveFillOpacity,\n fill: styleSheet.legendPageNavigatorMarkerFillColor,\n opacity: styleSheet.legendPageNavigatorMarkerFillOpacity,\n },\n },\n text: {\n style: {\n fill: styleSheet.legendPageNavigatorTextFillColor,\n fontSize: styleSheet.legendPageNavigatorTextFontSize,\n },\n },\n },\n animate: false,\n maxItemWidth: 200,\n itemSpacing: styleSheet.legendItemSpacing,\n itemMarginBottom: styleSheet.legendItemMarginBottom,\n padding: styleSheet.legendPadding, // 图例组件自己的外边距\n };\n}\n\n/**\n * 根据主题样式表生成主题结构\n * @param styleSheet 主题样式表\n */\nexport function createThemeByStyleSheet(styleSheet: StyleSheet): LooseObject {\n const shapeStyles = {\n point: {\n default: {\n fill: styleSheet.pointFillColor,\n r: styleSheet.pointSize,\n stroke: styleSheet.pointBorderColor,\n lineWidth: styleSheet.pointBorder,\n fillOpacity: styleSheet.pointFillOpacity,\n },\n active: {\n stroke: styleSheet.pointActiveBorderColor,\n lineWidth: styleSheet.pointActiveBorder,\n },\n selected: {\n stroke: styleSheet.pointSelectedBorderColor,\n lineWidth: styleSheet.pointSelectedBorder,\n },\n inactive: {\n fillOpacity: styleSheet.pointInactiveFillOpacity,\n strokeOpacity: styleSheet.pointInactiveBorderOpacity,\n },\n },\n hollowPoint: {\n default: {\n fill: styleSheet.hollowPointFillColor,\n lineWidth: styleSheet.hollowPointBorder,\n stroke: styleSheet.hollowPointBorderColor,\n strokeOpacity: styleSheet.hollowPointBorderOpacity,\n r: styleSheet.hollowPointSize,\n },\n active: {\n stroke: styleSheet.hollowPointActiveBorderColor,\n strokeOpacity: styleSheet.hollowPointActiveBorderOpacity,\n },\n selected: {\n lineWidth: styleSheet.hollowPointSelectedBorder,\n stroke: styleSheet.hollowPointSelectedBorderColor,\n strokeOpacity: styleSheet.hollowPointSelectedBorderOpacity,\n },\n inactive: {\n strokeOpacity: styleSheet.hollowPointInactiveBorderOpacity,\n },\n },\n area: {\n default: {\n fill: styleSheet.areaFillColor,\n fillOpacity: styleSheet.areaFillOpacity,\n stroke: null,\n },\n active: {\n fillOpacity: styleSheet.areaActiveFillOpacity,\n },\n selected: {\n fillOpacity: styleSheet.areaSelectedFillOpacity,\n },\n inactive: {\n fillOpacity: styleSheet.areaInactiveFillOpacity,\n },\n },\n hollowArea: {\n default: {\n fill: null,\n stroke: styleSheet.hollowAreaBorderColor,\n lineWidth: styleSheet.hollowAreaBorder,\n strokeOpacity: styleSheet.hollowAreaBorderOpacity,\n },\n active: {\n fill: null,\n lineWidth: styleSheet.hollowAreaActiveBorder,\n },\n selected: {\n fill: null,\n lineWidth: styleSheet.hollowAreaSelectedBorder,\n },\n inactive: {\n strokeOpacity: styleSheet.hollowAreaInactiveBorderOpacity,\n },\n },\n interval: {\n default: {\n fill: styleSheet.intervalFillColor,\n fillOpacity: styleSheet.intervalFillOpacity,\n },\n active: {\n stroke: styleSheet.intervalActiveBorderColor,\n lineWidth: styleSheet.intervalActiveBorder,\n },\n selected: {\n stroke: styleSheet.intervalSelectedBorderColor,\n lineWidth: styleSheet.intervalSelectedBorder,\n },\n inactive: {\n fillOpacity: styleSheet.intervalInactiveFillOpacity,\n strokeOpacity: styleSheet.intervalInactiveBorderOpacity,\n },\n },\n hollowInterval: {\n default: {\n fill: styleSheet.hollowIntervalFillColor,\n stroke: styleSheet.hollowIntervalBorderColor,\n lineWidth: styleSheet.hollowIntervalBorder,\n strokeOpacity: styleSheet.hollowIntervalBorderOpacity,\n },\n active: {\n stroke: styleSheet.hollowIntervalActiveBorderColor,\n lineWidth: styleSheet.hollowIntervalActiveBorder,\n strokeOpacity: styleSheet.hollowIntervalActiveBorderOpacity,\n },\n selected: {\n stroke: styleSheet.hollowIntervalSelectedBorderColor,\n lineWidth: styleSheet.hollowIntervalSelectedBorder,\n strokeOpacity: styleSheet.hollowIntervalSelectedBorderOpacity,\n },\n inactive: {\n stroke: styleSheet.hollowIntervalInactiveBorderColor,\n lineWidth: styleSheet.hollowIntervalInactiveBorder,\n strokeOpacity: styleSheet.hollowIntervalInactiveBorderOpacity,\n },\n },\n line: {\n default: {\n stroke: styleSheet.lineBorderColor,\n lineWidth: styleSheet.lineBorder,\n strokeOpacity: styleSheet.lineBorderOpacity,\n fill: null,\n lineAppendWidth: 10,\n lineCap: 'round',\n lineJoin: 'round',\n },\n active: {\n lineWidth: styleSheet.lineActiveBorder,\n },\n selected: {\n lineWidth: styleSheet.lineSelectedBorder,\n },\n inactive: {\n strokeOpacity: styleSheet.lineInactiveBorderOpacity,\n },\n },\n };\n const axisStyles = createAxisStyles(styleSheet);\n const legendStyles = createLegendStyles(styleSheet);\n\n return {\n background: styleSheet.backgroundColor,\n defaultColor: styleSheet.brandColor,\n subColor: styleSheet.subColor,\n semanticRed: styleSheet.paletteSemanticRed,\n semanticGreen: styleSheet.paletteSemanticGreen,\n padding: 'auto',\n fontFamily: styleSheet.fontFamily,\n // 兼容Theme配置\n /** 一般柱状图宽度占比,geometry中已添加默认值,为了geometry配置生效默认值为null */\n columnWidthRatio: 1 / 2,\n /** 柱状图最大宽度 */\n maxColumnWidth: null,\n /** 柱状图最小宽度 */\n minColumnWidth: null,\n /** 玫瑰图占比 */\n roseWidthRatio: 0.9999999,\n /** 多层饼图/环图占比 */\n multiplePieWidthRatio: 1 / 1.3,\n colors10: styleSheet.paletteQualitative10,\n colors20: styleSheet.paletteQualitative20,\n sequenceColors: styleSheet.paletteSequence,\n shapes: {\n point: [\n 'hollow-circle',\n 'hollow-square',\n 'hollow-bowtie',\n 'hollow-diamond',\n 'hollow-hexagon',\n 'hollow-triangle',\n 'hollow-triangle-down',\n 'circle',\n 'square',\n 'bowtie',\n 'diamond',\n 'hexagon',\n 'triangle',\n 'triangle-down',\n 'cross',\n 'tick',\n 'plus',\n 'hyphen',\n 'line',\n ],\n line: ['line', 'dash', 'dot', 'smooth'],\n area: ['area', 'smooth', 'line', 'smooth-line'],\n interval: ['rect', 'hollow-rect', 'line', 'tick'],\n },\n sizes: [1, 10],\n geometries: {\n interval: {\n rect: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: (element: Element) => {\n const coordinate = element.geometry.coordinate;\n if (coordinate.isPolar && coordinate.isTransposed) {\n const { startAngle, endAngle } = getAngle(element.getModel(), coordinate);\n const middleAngle = (startAngle + endAngle) / 2;\n const r = 7.5;\n const x = r * Math.cos(middleAngle);\n const y = r * Math.sin(middleAngle);\n return {\n matrix: ext.transform(null, [['t', x, y]]),\n };\n }\n return shapeStyles.interval.selected;\n },\n },\n },\n 'hollow-rect': {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n line: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n tick: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n funnel: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: shapeStyles.interval.selected,\n },\n },\n pyramid: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: shapeStyles.interval.selected,\n },\n },\n },\n line: {\n line: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n dot: {\n default: {\n style: {\n ...shapeStyles.line.default,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n active: {\n style: {\n ...shapeStyles.line.active,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n inactive: {\n style: {\n ...shapeStyles.line.inactive,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n selected: {\n style: {\n ...shapeStyles.line.selected,\n lineCap: null,\n lineDash: [1, 1],\n },\n },\n },\n dash: {\n default: {\n style: {\n ...shapeStyles.line.default,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n active: {\n style: {\n ...shapeStyles.line.active,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n inactive: {\n style: {\n ...shapeStyles.line.inactive,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n selected: {\n style: {\n ...shapeStyles.line.selected,\n lineCap: null,\n lineDash: [5.5, 1],\n },\n },\n },\n smooth: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n hv: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n vh: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n hvh: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n vhv: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n },\n polygon: {\n polygon: {\n default: {\n style: shapeStyles.interval.default,\n },\n active: {\n style: shapeStyles.interval.active,\n },\n inactive: {\n style: shapeStyles.interval.inactive,\n },\n selected: {\n style: shapeStyles.interval.selected,\n },\n },\n },\n point: {\n circle: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n square: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n bowtie: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n diamond: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n hexagon: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n triangle: {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n 'triangle-down': {\n default: {\n style: shapeStyles.point.default,\n },\n active: {\n style: shapeStyles.point.active,\n },\n inactive: {\n style: shapeStyles.point.inactive,\n },\n selected: {\n style: shapeStyles.point.selected,\n },\n },\n 'hollow-circle': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-square': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-bowtie': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-diamond': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-hexagon': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-triangle': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n 'hollow-triangle-down': {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n cross: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n tick: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n plus: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n hyphen: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n line: {\n default: {\n style: shapeStyles.hollowPoint.default,\n },\n active: {\n style: shapeStyles.hollowPoint.active,\n },\n inactive: {\n style: shapeStyles.hollowPoint.inactive,\n },\n selected: {\n style: shapeStyles.hollowPoint.selected,\n },\n },\n },\n area: {\n area: {\n default: {\n style: shapeStyles.area.default,\n },\n active: {\n style: shapeStyles.area.active,\n },\n inactive: {\n style: shapeStyles.area.inactive,\n },\n selected: {\n style: shapeStyles.area.selected,\n },\n },\n smooth: {\n default: {\n style: shapeStyles.area.default,\n },\n active: {\n style: shapeStyles.area.active,\n },\n inactive: {\n style: shapeStyles.area.inactive,\n },\n selected: {\n style: shapeStyles.area.selected,\n },\n },\n line: {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n 'smooth-line': {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n },\n schema: {\n candle: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n box: {\n default: {\n style: shapeStyles.hollowInterval.default,\n },\n active: {\n style: shapeStyles.hollowInterval.active,\n },\n inactive: {\n style: shapeStyles.hollowInterval.inactive,\n },\n selected: {\n style: shapeStyles.hollowInterval.selected,\n },\n },\n },\n edge: {\n line: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n vhv: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n smooth: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n arc: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n },\n violin: {\n violin: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n smooth: {\n default: {\n style: shapeStyles.line.default,\n },\n active: {\n style: shapeStyles.line.active,\n },\n inactive: {\n style: shapeStyles.line.inactive,\n },\n selected: {\n style: shapeStyles.line.selected,\n },\n },\n hollow: {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n 'hollow-smooth': {\n default: {\n style: shapeStyles.hollowArea.default,\n },\n active: {\n style: shapeStyles.hollowArea.active,\n },\n inactive: {\n style: shapeStyles.hollowArea.inactive,\n },\n selected: {\n style: shapeStyles.hollowArea.selected,\n },\n },\n },\n },\n components: {\n axis: {\n common: axisStyles,\n top: {\n position: 'top',\n grid: null,\n title: null,\n verticalLimitLength: 1 / 2,\n },\n bottom: {\n position: 'bottom',\n grid: null,\n title: null,\n verticalLimitLength: 1 / 2,\n },\n left: {\n position: 'left',\n title: null,\n line: null,\n tickLine: null,\n verticalLimitLength: 1 / 3,\n },\n right: {\n position: 'right',\n title: null,\n line: null,\n tickLine: null,\n verticalLimitLength: 1 / 3,\n },\n circle: {\n title: null,\n grid: deepMix({}, axisStyles.grid, { line: { type: 'line' } }),\n },\n radius: {\n title: null,\n grid: deepMix({}, axisStyles.grid, { line: { type: 'circle' } }),\n },\n },\n legend: {\n common: legendStyles,\n right: {\n layout: 'vertical',\n padding: styleSheet.legendVerticalPadding,\n },\n left: {\n layout: 'vertical',\n padding: styleSheet.legendVerticalPadding,\n },\n top: {\n layout: 'horizontal',\n padding: styleSheet.legendHorizontalPadding,\n },\n bottom: {\n layout: 'horizontal',\n padding: styleSheet.legendHorizontalPadding,\n },\n continuous: {\n title: null,\n background: null,\n track: {},\n rail: {\n type: 'color',\n size: styleSheet.sliderRailHeight,\n defaultLength: styleSheet.sliderRailWidth,\n style: {\n fill: styleSheet.sliderRailFillColor,\n stroke: styleSheet.sliderRailBorderColor,\n lineWidth: styleSheet.sliderRailBorder,\n },\n },\n label: {\n align: 'rail',\n spacing: 4, // 文本和 rail 的间距\n formatter: null,\n style: {\n fill: styleSheet.sliderLabelTextFillColor,\n fontSize: styleSheet.sliderLabelTextFontSize,\n lineHeight: styleSheet.sliderLabelTextLineHeight,\n textBaseline: 'middle',\n fontFamily: styleSheet.fontFamily,\n },\n },\n handler: {\n size: styleSheet.sliderHandlerWidth,\n style: {\n fill: styleSheet.sliderHandlerFillColor,\n stroke: styleSheet.sliderHandlerBorderColor,\n },\n },\n slidable: true,\n padding: legendStyles.padding,\n },\n },\n tooltip: {\n showContent: true,\n follow: true,\n showCrosshairs: false,\n showMarkers: true,\n shared: false,\n enterable: false,\n position: 'auto',\n marker: {\n symbol: 'circle',\n stroke: '#fff',\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: 'rgba(0,0,0,0.09)',\n lineWidth: 2,\n r: 4,\n },\n crosshairs: {\n line: {\n style: {\n stroke: styleSheet.tooltipCrosshairsBorderColor,\n lineWidth: styleSheet.tooltipCrosshairsBorder,\n },\n },\n text: null,\n textBackground: {\n padding: 2,\n style: {\n fill: 'rgba(0, 0, 0, 0.25)',\n lineWidth: 0,\n stroke: null,\n },\n },\n follow: false,\n },\n // tooltip dom 样式\n domStyles: {\n [`${TOOLTIP_CSS_CONST.CONTAINER_CLASS}`]: {\n position: 'absolute',\n visibility: 'hidden',\n zIndex: 8,\n transition: 'left 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s, top 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s',\n backgroundColor: styleSheet.tooltipContainerFillColor,\n opacity: styleSheet.tooltipContainerFillOpacity,\n boxShadow: styleSheet.tooltipContainerShadow,\n borderRadius: `${styleSheet.tooltipContainerBorderRadius}px`,\n color: styleSheet.tooltipTextFillColor,\n fontSize: `${styleSheet.tooltipTextFontSize}px`,\n fontFamily: styleSheet.fontFamily,\n lineHeight: `${styleSheet.tooltipTextLineHeight}px`,\n padding: '0 12px 0 12px',\n },\n [`${TOOLTIP_CSS_CONST.TITLE_CLASS}`]: {\n marginBottom: '12px',\n marginTop: '12px',\n },\n [`${TOOLTIP_CSS_CONST.LIST_CLASS}`]: {\n margin: 0,\n listStyleType: 'none',\n padding: 0,\n },\n [`${TOOLTIP_CSS_CONST.LIST_ITEM_CLASS}`]: {\n listStyleType: 'none',\n padding: 0,\n marginBottom: '12px',\n marginTop: '12px',\n marginLeft: 0,\n marginRight: 0,\n },\n [`${TOOLTIP_CSS_CONST.MARKER_CLASS}`]: {\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n display: 'inline-block',\n marginRight: '8px',\n },\n [`${TOOLTIP_CSS_CONST.VALUE_CLASS}`]: {\n display: 'inline-block',\n float: 'right',\n marginLeft: '30px',\n },\n },\n },\n annotation: {\n arc: {\n style: {\n stroke: styleSheet.annotationArcBorderColor,\n lineWidth: styleSheet.annotationArcBorder,\n },\n animate: true,\n },\n line: {\n style: {\n stroke: styleSheet.annotationLineBorderColor,\n lineDash: styleSheet.annotationLineDash,\n lineWidth: styleSheet.annotationLineBorder,\n },\n text: {\n position: 'start',\n autoRotate: true,\n style: {\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n textAlign: 'start',\n fontFamily: styleSheet.fontFamily,\n textBaseline: 'bottom',\n },\n },\n animate: true,\n },\n text: {\n style: {\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n textBaseline: 'middle',\n textAlign: 'start',\n fontFamily: styleSheet.fontFamily,\n },\n animate: true,\n },\n region: {\n top: false,\n style: {\n lineWidth: styleSheet.annotationRegionBorder,\n stroke: styleSheet.annotationRegionBorderColor,\n fill: styleSheet.annotationRegionFillColor,\n fillOpacity: styleSheet.annotationRegionFillOpacity,\n }, // 辅助框的图形样式属性\n animate: true,\n },\n image: {\n top: false,\n animate: true,\n },\n dataMarker: {\n top: true,\n point: {\n style: {\n r: 3,\n stroke: styleSheet.brandColor,\n lineWidth: 2,\n },\n },\n line: {\n style: {\n stroke: styleSheet.annotationLineBorderColor,\n lineWidth: styleSheet.annotationLineBorder,\n },\n length: styleSheet.annotationDataMarkerLineLength,\n },\n text: {\n style: {\n textAlign: 'start',\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n fontFamily: styleSheet.fontFamily,\n },\n },\n direction: 'upward',\n autoAdjust: true,\n animate: true,\n },\n dataRegion: {\n style: {\n region: {\n fill: styleSheet.annotationRegionFillColor,\n fillOpacity: styleSheet.annotationRegionFillOpacity,\n },\n text: {\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: styleSheet.annotationTextFillColor,\n stroke: styleSheet.annotationTextBorderColor,\n lineWidth: styleSheet.annotationTextBorder,\n fontSize: styleSheet.annotationTextFontSize,\n fontFamily: styleSheet.fontFamily,\n },\n },\n animate: true,\n },\n },\n slider: {\n common: {\n padding: [8, 8, 8, 8],\n backgroundStyle: {\n fill: styleSheet.cSliderBackgroundFillColor,\n opacity: styleSheet.cSliderBackgroundFillOpacity,\n },\n foregroundStyle: {\n fill: styleSheet.cSliderForegroundFillColor,\n opacity: styleSheet.cSliderForegroundFillOpacity,\n },\n handlerStyle: {\n width: styleSheet.cSliderHandlerWidth,\n height: styleSheet.cSliderHandlerHeight,\n fill: styleSheet.cSliderHandlerFillColor,\n opacity: styleSheet.cSliderHandlerFillOpacity,\n stroke: styleSheet.cSliderHandlerBorderColor,\n lineWidth: styleSheet.cSliderHandlerBorder,\n radius: styleSheet.cSliderHandlerBorderRadius,\n // 高亮的颜色\n highLightFill: styleSheet.cSliderHandlerHighlightFillColor,\n },\n textStyle: {\n fill: styleSheet.cSliderTextFillColor,\n opacity: styleSheet.cSliderTextFillOpacity,\n fontSize: styleSheet.cSliderTextFontSize,\n lineHeight: styleSheet.cSliderTextLineHeight,\n fontWeight: styleSheet.cSliderTextFontWeight,\n stroke: styleSheet.cSliderTextBorderColor,\n lineWidth: styleSheet.cSliderTextBorder,\n },\n },\n },\n scrollbar: {\n common: {\n padding: [8, 8, 8, 8],\n },\n default: {\n style: {\n trackColor: styleSheet.scrollbarTrackFillColor,\n thumbColor: styleSheet.scrollbarThumbFillColor,\n },\n },\n hover: {\n style: {\n thumbColor: styleSheet.scrollbarThumbHighlightFillColor,\n },\n },\n },\n },\n labels: {\n offset: 12,\n style: {\n fill: styleSheet.labelFillColor,\n fontSize: styleSheet.labelFontSize,\n fontFamily: styleSheet.fontFamily,\n stroke: styleSheet.labelBorderColor,\n lineWidth: styleSheet.labelBorder,\n },\n fillColorDark: styleSheet.labelFillColorDark,\n fillColorLight: styleSheet.labelFillColorLight,\n autoRotate: true,\n },\n innerLabels: {\n style: {\n fill: styleSheet.innerLabelFillColor,\n fontSize: styleSheet.innerLabelFontSize,\n fontFamily: styleSheet.fontFamily,\n stroke: styleSheet.innerLabelBorderColor,\n lineWidth: styleSheet.innerLabelBorder,\n },\n autoRotate: true,\n },\n overflowLabels: {\n style: {\n fill: styleSheet.overflowLabelFillColor,\n fontSize: styleSheet.overflowLabelFontSize,\n fontFamily: styleSheet.fontFamily,\n stroke: styleSheet.overflowLabelBorderColor,\n lineWidth: styleSheet.overflowLabelBorder,\n },\n },\n pieLabels: {\n labelHeight: 14,\n offset: 10,\n labelLine: {\n style: {\n lineWidth: styleSheet.labelLineBorder,\n },\n },\n autoRotate: true,\n },\n };\n}\n","import { StyleSheetCfg } from '../../interface';\n\nconst BLACK_COLORS = {\n 100: '#000',\n 95: '#0D0D0D',\n 85: '#262626',\n 65: '#595959',\n 45: '#8C8C8C',\n 25: '#BFBFBF',\n 15: '#D9D9D9',\n 6: '#F0F0F0',\n};\n\nconst WHITE_COLORS = {\n 100: '#FFFFFF',\n 95: '#F2F2F2',\n 85: '#D9D9D9',\n 65: '#A6A6A6',\n 45: '#737373',\n 25: '#404040',\n 15: '#262626',\n 6: '#0F0F0F',\n};\n\nconst QUALITATIVE_10 = [\n '#5B8FF9',\n '#5AD8A6',\n '#5D7092',\n '#F6BD16',\n '#6F5EF9',\n '#6DC8EC',\n '#945FB9',\n '#FF9845',\n '#1E9493',\n '#FF99C3',\n];\n\nconst QUALITATIVE_20 = [\n '#5B8FF9',\n '#CDDDFD',\n '#5AD8A6',\n '#CDF3E4',\n '#5D7092',\n '#CED4DE',\n '#F6BD16',\n '#FCEBB9',\n '#6F5EF9',\n '#D3CEFD',\n '#6DC8EC',\n '#D3EEF9',\n '#945FB9',\n '#DECFEA',\n '#FF9845',\n '#FFE0C7',\n '#1E9493',\n '#BBDEDE',\n '#FF99C3',\n '#FFE0ED',\n];\n\n/** 单色顺序色板 */\nconst SINGLE_SEQUENCE = [\n '#B8E1FF',\n '#9AC5FF',\n '#7DAAFF',\n '#5B8FF9',\n '#3D76DD',\n '#085EC0',\n '#0047A5',\n '#00318A',\n '#001D70',\n];\n\nexport const createLightStyleSheet = (cfg: StyleSheetCfg = {}) => {\n const { paletteQualitative10 = QUALITATIVE_10, paletteQualitative20 = QUALITATIVE_20 } = cfg;\n const { brandColor = paletteQualitative10[0] } = cfg;\n\n const token = {\n /** 图表背景色 */\n backgroundColor: 'transparent',\n /** 主题色 */\n brandColor,\n /** 图表辅助色 */\n subColor: 'rgba(0,0,0,0.05)',\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10,\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20,\n /** 语义色 */\n paletteSemanticRed: '#F4664A',\n /** 语义色 */\n paletteSemanticGreen: '#30BF78',\n /** 语义色 */\n paletteSemanticYellow: '#FAAD14',\n /** (单色)顺序色板 */\n paletteSequence: SINGLE_SEQUENCE,\n /** 字体 */\n fontFamily: `\"Segoe UI\", Roboto, \"Helvetica Neue\", Arial,\n \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\",\n \"Noto Color Emoji\"`,\n\n // -------------------- 坐标轴 --------------------\n /** 坐标轴线颜色 */\n axisLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴线粗细 */\n axisLineBorder: 1,\n /** 坐标轴线 lineDash 设置 */\n axisLineDash: null,\n\n /** 坐标轴标题颜色 */\n axisTitleTextFillColor: BLACK_COLORS[65],\n /** 坐标轴标题文本字体大小 */\n axisTitleTextFontSize: 12,\n /** 坐标轴标题文本行高 */\n axisTitleTextLineHeight: 12,\n /** 坐标轴标题文本字体粗细 */\n axisTitleTextFontWeight: 'normal',\n /** 坐标轴标题距离坐标轴文本的间距 */\n axisTitleSpacing: 12,\n /** 坐标轴标题详细说明icon颜色 */\n axisDescriptionIconFillColor: WHITE_COLORS[85],\n\n /** 坐标轴刻度线颜色 */\n axisTickLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴刻度线长度 */\n axisTickLineLength: 4,\n /** 坐标轴刻度线粗细 */\n axisTickLineBorder: 1,\n\n /** 坐标轴次刻度线颜色 */\n axisSubTickLineBorderColor: BLACK_COLORS[15],\n /** 坐标轴次刻度线长度 */\n axisSubTickLineLength: 2,\n /** 坐标轴次刻度线粗细 */\n axisSubTickLineBorder: 1,\n\n /** 坐标轴刻度文本颜色 */\n axisLabelFillColor: BLACK_COLORS[45],\n /** 坐标轴刻度文本字体大小 */\n axisLabelFontSize: 12,\n /** 坐标轴刻度文本行高 */\n axisLabelLineHeight: 12,\n /** 坐标轴刻度文本字体粗细 */\n axisLabelFontWeight: 'normal',\n /** 坐标轴刻度文本距离坐标轴线的间距 */\n axisLabelOffset: 8,\n\n /** 坐标轴网格线颜色 */\n axisGridBorderColor: BLACK_COLORS[15],\n /** 坐标轴网格线粗细 */\n axisGridBorder: 1,\n /** 坐标轴网格线虚线设置 */\n axisGridLineDash: null,\n\n // -------------------- 图例 --------------------\n /** 图例标题颜色 */\n legendTitleTextFillColor: BLACK_COLORS[45],\n /** 图例标题文本字体大小 */\n legendTitleTextFontSize: 12,\n /** 图例标题文本行高 */\n legendTitleTextLineHeight: 21,\n /** 图例标题文本字体粗细 */\n legendTitleTextFontWeight: 'normal',\n\n /** 图例 marker 颜色 */\n legendMarkerColor: brandColor,\n /** 图例 marker 距离图例文本的间距 */\n legendMarkerSpacing: 8,\n /** 图例 marker 默认半径大小 */\n legendMarkerSize: 4,\n /** 图例 'circle' marker 半径 */\n legendCircleMarkerSize: 4,\n /** 图例 'square' marker 半径 */\n legendSquareMarkerSize: 4,\n /** 图例 'line' marker 半径 */\n legendLineMarkerSize: 5,\n\n /** 图例项文本颜色 */\n legendItemNameFillColor: BLACK_COLORS[65],\n /** 图例项文本字体大小 */\n legendItemNameFontSize: 12,\n /** 图例项文本行高 */\n legendItemNameLineHeight: 12,\n /** 图例项粗细 */\n legendItemNameFontWeight: 'normal',\n /** 图例项之间的水平间距 */\n legendItemSpacing: 24,\n /** 图例项垂直方向的间隔 */\n legendItemMarginBottom: 12,\n /** 图例与图表绘图区域的偏移距离 */\n legendPadding: [8, 8, 8, 8],\n /** 水平布局的图例与绘图区域偏移距离 */\n legendHorizontalPadding: [8, 0, 8, 0],\n /** 垂直布局的图例与绘图区域偏移距离 */\n legendVerticalPadding: [0, 8, 0, 8],\n\n // 图例分页器\n /** 图例分页器 marker 大小 */\n legendPageNavigatorMarkerSize: 12,\n /** 图例分页器 marker 非激活状态填充色 */\n legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[100],\n /** 图例分页器 marker 非激活状态填充色透明度 */\n legendPageNavigatorMarkerInactiveFillOpacity: 0.45,\n /** 图例分页器 marker 填充色 */\n legendPageNavigatorMarkerFillColor: BLACK_COLORS[100],\n /** 图例分页器 marker 填充色透明度 */\n legendPageNavigatorMarkerFillOpacity: 1,\n /** 图例分页器文本颜色 */\n legendPageNavigatorTextFillColor: BLACK_COLORS[45],\n /** 图例分页器文本字体大小 */\n legendPageNavigatorTextFontSize: 12,\n\n /** 连续图例滑块填充色 */\n sliderRailFillColor: BLACK_COLORS[15],\n /** 连续图例滑块边框粗细 */\n sliderRailBorder: 0,\n /** 连续图例滑块边框颜色 */\n sliderRailBorderColor: null,\n /** 连续图例滑块宽度 */\n sliderRailWidth: 100,\n /** 连续图例滑块高度 */\n sliderRailHeight: 12,\n\n /** 连续图例文本颜色 */\n sliderLabelTextFillColor: BLACK_COLORS[45],\n /** 连续图例文本字体大小 */\n sliderLabelTextFontSize: 12,\n /** 连续图例文本行高 */\n sliderLabelTextLineHeight: 12,\n /** 连续图例文本字体粗细 */\n sliderLabelTextFontWeight: 'normal',\n\n /** 连续图例滑块颜色 */\n sliderHandlerFillColor: BLACK_COLORS[6],\n /** 连续图例滑块宽度 */\n sliderHandlerWidth: 10,\n /** 连续图例滑块高度 */\n sliderHandlerHeight: 14,\n /** 连续图例滑块边框粗细 */\n sliderHandlerBorder: 1,\n /** 连续图例滑块边框颜色 */\n sliderHandlerBorderColor: BLACK_COLORS[25],\n\n // -------------------- Annotation,图形标注 --------------------\n /** arc 图形标注描边颜色 */\n annotationArcBorderColor: BLACK_COLORS[15],\n /** arc 图形标注粗细 */\n annotationArcBorder: 1,\n\n /** line 图形标注颜色 */\n annotationLineBorderColor: BLACK_COLORS[25],\n /** line 图形标注粗细 */\n annotationLineBorder: 1,\n /** lube 图形标注的虚线间隔 */\n annotationLineDash: null,\n\n /** text 图形标注文本颜色 */\n annotationTextFillColor: BLACK_COLORS[65],\n /** text 图形标注文本字体大小 */\n annotationTextFontSize: 12,\n /** text 图形标注文本行高 */\n annotationTextLineHeight: 12,\n /** text 图形标注文本字体粗细 */\n annotationTextFontWeight: 'normal',\n /** text 图形标注文本边框颜色 */\n annotationTextBorderColor: null,\n /** text 图形标注文本边框粗细 */\n annotationTextBorder: 0,\n\n /** region 图形标注填充颜色 */\n annotationRegionFillColor: BLACK_COLORS[100],\n /** region 图形标注填充颜色透明色 */\n annotationRegionFillOpacity: 0.06,\n /** region 图形标注描边粗细 */\n annotationRegionBorder: 0,\n /** region 图形标注描边颜色 */\n annotationRegionBorderColor: null,\n\n /** dataMarker 图形标注线的长度 */\n annotationDataMarkerLineLength: 16,\n\n // -------------------- Tooltip --------------------\n /** tooltip crosshairs 辅助线颜色 */\n tooltipCrosshairsBorderColor: BLACK_COLORS[25],\n /** tooltip crosshairs 辅助线粗细 */\n tooltipCrosshairsBorder: 1,\n /** tooltip crosshairs 辅助线虚线间隔 */\n tooltipCrosshairsLineDash: null,\n\n /** tooltip 内容框背景色 */\n tooltipContainerFillColor: 'rgb(255, 255, 255)',\n tooltipContainerFillOpacity: 0.95,\n /** tooltip 内容框阴影 */\n tooltipContainerShadow: '0px 0px 10px #aeaeae',\n /** tooltip 内容框圆角 */\n tooltipContainerBorderRadius: 3,\n\n /** tooltip 文本颜色 */\n tooltipTextFillColor: BLACK_COLORS[65],\n /** tooltip 文本字体大小 */\n tooltipTextFontSize: 12,\n /** tooltip 文本行高 */\n tooltipTextLineHeight: 12,\n /** tooltip 文本字体粗细 */\n tooltipTextFontWeight: 'bold',\n\n // -------------------- Geometry labels --------------------\n /** Geometry label 文本颜色 */\n labelFillColor: BLACK_COLORS[65],\n labelFillColorDark: '#2c3542',\n labelFillColorLight: '#ffffff',\n /** Geometry label 文本字体大小 */\n labelFontSize: 12,\n /** Geometry label 文本行高 */\n labelLineHeight: 12,\n /** Geometry label 文本字体粗细 */\n labelFontWeight: 'normal',\n /** Geometry label 文本描边颜色 */\n labelBorderColor: null,\n /** Geometry label 文本描边粗细 */\n labelBorder: 0,\n\n /** Geometry innerLabel 文本颜色 */\n innerLabelFillColor: WHITE_COLORS[100],\n /** Geometry innerLabel 文本字体大小 */\n innerLabelFontSize: 12,\n /** Geometry innerLabel 文本行高 */\n innerLabelLineHeight: 12,\n /** Geometry innerLabel 文本字体粗细 */\n innerLabelFontWeight: 'normal',\n /** Geometry innerLabel 文本描边颜色 */\n innerLabelBorderColor: null,\n /** Geometry innerLabel 文本描边粗细 */\n innerLabelBorder: 0,\n\n /** Geometry overflowLabel 文本颜色 */\n overflowLabelFillColor: BLACK_COLORS[65],\n /** Geometry overflowLabel 文本字体大小 */\n overflowLabelFontSize: 12,\n /** Geometry overflowLabel 文本行高 */\n overflowLabelLineHeight: 12,\n /** Geometry overflowLabel 文本字体粗细 */\n overflowLabelFontWeight: 'normal',\n /** Geometry overflowLabel 文本描边颜色 */\n overflowLabelBorderColor: WHITE_COLORS[100],\n /** Geometry overflowLabel 文本描边粗细 */\n overflowLabelBorder: 1,\n\n /** Geometry label 文本连接线粗细 */\n labelLineBorder: 1,\n /** Geometry label 文本连接线颜色 */\n labelLineBorderColor: BLACK_COLORS[25],\n\n // -------------------- Slider 组件样式--------------------\n /** slider 滑道高度 */\n cSliderRailHieght: 16,\n /** slider 滑道背景色 */\n cSliderBackgroundFillColor: '#416180',\n /** slider 滑道背景色透明度 */\n cSliderBackgroundFillOpacity: 0.05,\n /** slider 滑道前景色 */\n cSliderForegroundFillColor: '#5B8FF9',\n /** slider 滑道前景色透明度 */\n cSliderForegroundFillOpacity: 0.15,\n // slider handlerStyle 手柄样式\n /** slider 手柄高度 */\n cSliderHandlerHeight: 24,\n /** Slider 手柄宽度 */\n cSliderHandlerWidth: 10,\n /** Slider 手柄背景色 */\n cSliderHandlerFillColor: '#F7F7F7',\n /** Slider 手柄背景色透明度 */\n cSliderHandlerFillOpacity: 1,\n /** Slider 手柄高亮背景色 */\n cSliderHandlerHighlightFillColor: '#FFF',\n /** Slider 手柄边框色 */\n cSliderHandlerBorderColor: '#BFBFBF',\n /** Slider 手柄边框粗细 */\n cSliderHandlerBorder: 1,\n /** Slider 手柄边框圆角 */\n cSliderHandlerBorderRadius: 2,\n // slider textStyle 字体标签样式\n /** Slider 字体标签颜色 */\n cSliderTextFillColor: '#000',\n /** Slider 字体标签透明度 */\n cSliderTextFillOpacity: 0.45,\n /** Slider 字体标签大小 */\n cSliderTextFontSize: 12,\n /** Slider 字体标签行高 */\n cSliderTextLineHeight: 12,\n /** Slider 字体标签字重 */\n cSliderTextFontWeight: 'normal',\n /** Slider 字体标签描边色 */\n cSliderTextBorderColor: null,\n /** Slider 字体标签描边粗细 */\n cSliderTextBorder: 0,\n\n // -------------------- Scrollbar 组件样式--------------------\n /** 滚动条 滚道填充色 */\n scrollbarTrackFillColor: 'rgba(0,0,0,0)',\n /** 滚动条 滑块填充色 */\n scrollbarThumbFillColor: 'rgba(0,0,0,0.15)',\n /** 滚动条 滑块高亮填充色 */\n scrollbarThumbHighlightFillColor: 'rgba(0,0,0,0.2)',\n\n // -------------------- Geometry 图形样式--------------------\n /** 点图填充颜色 */\n pointFillColor: brandColor,\n /** 点图填充颜色透明度 */\n pointFillOpacity: 0.95,\n /** 点图大小 */\n pointSize: 4,\n /** 点图描边粗细 */\n pointBorder: 1,\n /** 点图描边颜色 */\n pointBorderColor: WHITE_COLORS[100],\n /** 点图描边透明度 */\n pointBorderOpacity: 1,\n\n /** 点图 active 状态下描边颜色 */\n pointActiveBorderColor: BLACK_COLORS[100],\n\n /** 点图 selected 状态下描边粗细 */\n pointSelectedBorder: 2,\n /** 点图 selected 状态下描边颜色 */\n pointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 点图 inactive 状态下填充颜色透明度 */\n pointInactiveFillOpacity: 0.3,\n /** 点图 inactive 状态下描边透明度 */\n pointInactiveBorderOpacity: 0.3,\n\n /** 空心点图大小 */\n hollowPointSize: 4,\n /** 空心点图描边粗细 */\n hollowPointBorder: 1,\n /** 空心点图描边颜色 */\n hollowPointBorderColor: brandColor,\n /** 空心点图描边透明度 */\n hollowPointBorderOpacity: 0.95,\n hollowPointFillColor: WHITE_COLORS[100],\n\n /** 空心点图 active 状态下描边粗细 */\n hollowPointActiveBorder: 1,\n /** 空心点图 active 状态下描边颜色 */\n hollowPointActiveBorderColor: BLACK_COLORS[100],\n /** 空心点图 active 状态下描边透明度 */\n hollowPointActiveBorderOpacity: 1,\n\n /** 空心点图 selected 状态下描边粗细 */\n hollowPointSelectedBorder: 2,\n /** 空心点图 selected 状态下描边颜色 */\n hollowPointSelectedBorderColor: BLACK_COLORS[100],\n /** 空心点图 selected 状态下描边透明度 */\n hollowPointSelectedBorderOpacity: 1,\n\n /** 空心点图 inactive 状态下描边透明度 */\n hollowPointInactiveBorderOpacity: 0.3,\n\n /** 线图粗细 */\n lineBorder: 2,\n /** 线图颜色 */\n lineBorderColor: brandColor,\n /** 线图透明度 */\n lineBorderOpacity: 1,\n\n /** 线图 Active 状态下粗细 */\n lineActiveBorder: 3,\n\n /** 线图 selected 状态下粗细 */\n lineSelectedBorder: 3,\n\n /** 线图 inactive 状态下透明度 */\n lineInactiveBorderOpacity: 0.3,\n\n /** area 填充颜色 */\n areaFillColor: brandColor,\n /** area 填充透明度 */\n areaFillOpacity: 0.25,\n\n /** area 在 active 状态下的填充透明度 */\n areaActiveFillColor: brandColor,\n areaActiveFillOpacity: 0.5,\n\n /** area 在 selected 状态下的填充透明度 */\n areaSelectedFillColor: brandColor,\n areaSelectedFillOpacity: 0.5,\n\n /** area inactive 状态下填充透明度 */\n areaInactiveFillOpacity: 0.3,\n\n /** hollowArea 颜色 */\n hollowAreaBorderColor: brandColor,\n /** hollowArea 边框粗细 */\n hollowAreaBorder: 2,\n /** hollowArea 边框透明度 */\n hollowAreaBorderOpacity: 1,\n\n /** hollowArea active 状态下的边框粗细 */\n hollowAreaActiveBorder: 3,\n hollowAreaActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowArea selected 状态下的边框粗细 */\n hollowAreaSelectedBorder: 3,\n hollowAreaSelectedBorderColor: BLACK_COLORS[100],\n\n /** hollowArea inactive 状态下的边框透明度 */\n hollowAreaInactiveBorderOpacity: 0.3,\n\n /** interval 填充颜色 */\n intervalFillColor: brandColor,\n /** interval 填充透明度 */\n intervalFillOpacity: 0.95,\n\n /** interval active 状态下边框粗细 */\n intervalActiveBorder: 1,\n /** interval active 状态下边框颜色 */\n intervalActiveBorderColor: BLACK_COLORS[100],\n intervalActiveBorderOpacity: 1,\n\n /** interval selected 状态下边框粗细 */\n intervalSelectedBorder: 2,\n /** interval selected 状态下边框颜色 */\n intervalSelectedBorderColor: BLACK_COLORS[100],\n /** interval selected 状态下边框透明度 */\n intervalSelectedBorderOpacity: 1,\n\n /** interval inactive 状态下边框透明度 */\n intervalInactiveBorderOpacity: 0.3,\n /** interval inactive 状态下填充透明度 */\n intervalInactiveFillOpacity: 0.3,\n\n /** interval 边框粗细 */\n hollowIntervalBorder: 2,\n /** hollowInterval 边框颜色 */\n hollowIntervalBorderColor: brandColor,\n /** hollowInterval 边框透明度 */\n hollowIntervalBorderOpacity: 1,\n hollowIntervalFillColor: WHITE_COLORS[100],\n\n /** hollowInterval active 状态下边框粗细 */\n hollowIntervalActiveBorder: 2,\n /** hollowInterval active 状态下边框颜色 */\n hollowIntervalActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框粗细 */\n hollowIntervalSelectedBorder: 3,\n /** hollowInterval selected 状态下边框颜色 */\n hollowIntervalSelectedBorderColor: BLACK_COLORS[100],\n /** hollowInterval selected 状态下边框透明度 */\n hollowIntervalSelectedBorderOpacity: 1,\n\n /** hollowInterval inactive 状态下边框透明度 */\n hollowIntervalInactiveBorderOpacity: 0.3,\n };\n\n return { ...token, ...cfg };\n};\n\nexport const antvLight = createLightStyleSheet();\n","import { deepMix } from '@antv/util';\nimport { createThemeByStyleSheet } from './create-by-style-sheet';\nimport { createLightStyleSheet } from '../style-sheet/light';\nimport { LooseObject, StyleSheetCfg } from '../../interface';\n\ninterface ThemeCfg extends LooseObject {\n styleSheet?: StyleSheetCfg;\n}\n\nexport function createTheme(themeCfg: ThemeCfg): LooseObject {\n const { styleSheet: styleSheetCfg = {}, ...themeObject } = themeCfg;\n\n // ① 创建样式表 (默认创建 light 的样式表)\n const styleSheet = createLightStyleSheet(styleSheetCfg);\n // ② 创建主题\n return deepMix({}, createThemeByStyleSheet(styleSheet), themeObject);\n}\n","import { get, lowerCase } from '@antv/util';\nimport { LooseObject } from '../interface';\n\nimport { createTheme } from './util';\n\nconst defaultTheme = createTheme({});\n\n// 所有已经存在的主题\nconst Themes: Record = {\n default: defaultTheme,\n};\n\n/**\n * 获取主题配置信息。\n * @param theme 主题名\n */\nexport function getTheme(theme?: string): LooseObject {\n return get(Themes, lowerCase(theme), Themes.default);\n}\n\n/**\n * 注册新的主题配置信息。\n * @param theme 主题名。\n * @param value 具体的主题配置。\n */\nexport function registerTheme(theme: string, value: LooseObject) {\n Themes[lowerCase(theme)] = createTheme(value);\n}\n","import {\n contains,\n filter,\n find,\n isArray,\n isEmpty,\n isFunction,\n isNil,\n isNumberEqual,\n isObject,\n memoize,\n get,\n values,\n} from '@antv/util';\nimport { View } from '../chart';\nimport { FIELD_ORIGIN, GROUP_ATTRS } from '../constant';\nimport { Attribute, Scale } from '../dependents';\nimport Geometry from '../geometry/base';\nimport { Data, Datum, MappingDatum, Point, TooltipCfg, TooltipTitle } from '../interface';\nimport { getName, inferScaleType } from './scale';\n\nfunction snapEqual(v1: any, v2: any, scale: Scale) {\n const value1 = scale.translate(v1);\n const value2 = scale.translate(v2);\n\n return isNumberEqual(value1, value2);\n}\n\nfunction getXValueByPoint(point: Point, geometry: Geometry): number {\n const coordinate = geometry.coordinate;\n const xScale = geometry.getXScale();\n const range = xScale.range;\n const rangeMax = range[range.length - 1];\n const rangeMin = range[0];\n\n const invertPoint = coordinate.invert(point);\n\n let xValue = invertPoint.x;\n if (coordinate.isPolar && xValue > (1 + rangeMax) / 2) {\n xValue = rangeMin; // 极坐标下,scale 的 range 被做过特殊处理\n }\n return xScale.translate(xScale.invert(xValue));\n}\n\nfunction filterYValue(data: Data, point: Point, geometry: Geometry) {\n const coordinate = geometry.coordinate;\n const yScale = geometry.getYScale();\n const yField = yScale.field;\n const invertPoint = coordinate.invert(point);\n const yValue = yScale.invert(invertPoint.y);\n\n const result = find(data, (obj: Datum) => {\n const originData = obj[FIELD_ORIGIN];\n return originData[yField][0] <= yValue && originData[yField][1] >= yValue;\n });\n return result || data[data.length - 1];\n}\n\nconst getXDistance = memoize((scale: Scale) => {\n if (scale.isCategory) {\n return 1;\n }\n const scaleValues = scale.values; // values 是无序的\n const length = scaleValues.length;\n let min = scale.translate(scaleValues[0]);\n let max = min;\n\n for (let index = 0; index < length; index++) {\n const value = scaleValues[index];\n // 时间类型需要 translate\n const numericValue = scale.translate(value);\n if (numericValue < min) {\n min = numericValue;\n }\n if (numericValue > max) {\n max = numericValue;\n }\n }\n return (max - min) / (length - 1);\n});\n\n/**\n * 获得 tooltip 的 title\n * @param originData\n * @param geometry\n * @param title\n */\nfunction getTooltipTitle(originData: Datum, geometry: Geometry, title: TooltipTitle): string {\n const positionAttr = geometry.getAttribute('position');\n const fields = positionAttr.getFields();\n const scales = geometry.scales;\n\n const titleField = isFunction(title) || !title ? fields[0] : title;\n const titleScale = scales[titleField];\n\n // 如果创建了该字段对应的 scale,则通过 scale.getText() 方式取值,因为用户可能对数据进行了格式化\n // 如果没有对应的 scale,则从原始数据中取值,如果原始数据中仍不存在,则直接放回 title 值\n const tooltipTitle = titleScale ? titleScale.getText(originData[titleField]) : originData[titleField] || titleField;\n\n return isFunction(title) ? title(tooltipTitle, originData) : tooltipTitle;\n}\n\nfunction getAttributesForLegend(geometry: Geometry) {\n const attributes = values(geometry.attributes);\n return filter(attributes, (attribute: Attribute) => contains(GROUP_ATTRS, attribute.type));\n}\n\nfunction getTooltipValueScale(geometry: Geometry) {\n const attributes = getAttributesForLegend(geometry);\n let scale;\n for (const attribute of attributes) {\n const tmpScale = attribute.getScale(attribute.type);\n if (tmpScale && tmpScale.isLinear) {\n const tmpScaleDef = get(geometry.scaleDefs, tmpScale.field);\n const inferedScaleType = inferScaleType(tmpScale, tmpScaleDef, attribute.type, geometry.type);\n if (inferedScaleType !== 'cat') {\n // 如果指定字段是非 position 的,同时是连续的\n scale = tmpScale;\n break;\n }\n }\n }\n\n const xScale = geometry.getXScale();\n const yScale = geometry.getYScale();\n\n return scale || yScale || xScale;\n}\n\nfunction getTooltipValue(originData: Datum, valueScale: Scale) {\n const field = valueScale.field;\n const value = originData[field];\n\n if (isArray(value)) {\n const texts = value.map((eachValue) => {\n return valueScale.getText(eachValue);\n });\n return texts.join('-');\n }\n return valueScale.getText(value);\n}\n\n// 根据原始数据获取 tooltip item 中 name 值\nfunction getTooltipName(originData: Datum, geometry: Geometry) {\n let nameScale: Scale;\n const groupScales = geometry.getGroupScales();\n if (groupScales.length) {\n // 如果存在分组类型,取第一个分组类型\n nameScale = groupScales[0];\n }\n if (nameScale) {\n const field = nameScale.field;\n return nameScale.getText(originData[field]);\n }\n\n const valueScale = getTooltipValueScale(geometry);\n return getName(valueScale);\n}\n\n/**\n * @ignore\n * Finds data from geometry by point\n * @param point canvas point\n * @param data an item of geometry.dataArray\n * @param geometry\n * @returns\n */\nexport function findDataByPoint(point: Point, data: MappingDatum[], geometry: Geometry) {\n if (data.length === 0) {\n return null;\n }\n\n const geometryType = geometry.type;\n const xScale = geometry.getXScale();\n const yScale = geometry.getYScale();\n\n const xField = xScale.field;\n const yField = yScale.field;\n\n let rst = null;\n\n // 热力图采用最小逼近策略查找 point 击中的数据\n if (geometryType === 'heatmap' || geometryType === 'point') {\n // 将 point 画布坐标转换为原始数据值\n const coordinate = geometry.coordinate;\n const invertPoint = coordinate.invert(point); // 转换成归一化的数据\n const x = xScale.invert(invertPoint.x); // 转换为原始值\n const y = yScale.invert(invertPoint.y); // 转换为原始值\n\n let min = Infinity;\n for (let index = 0; index < data.length; index++) {\n const obj = data[index];\n const originData = obj[FIELD_ORIGIN];\n const range = (originData[xField] - x) ** 2 + (originData[yField] - y) ** 2;\n if (range < min) {\n min = range;\n rst = obj;\n }\n }\n\n return rst;\n }\n\n // 其他 Geometry 类型按照 x 字段数据进行查找\n const first = data[0];\n let last = data[data.length - 1];\n const xValue = getXValueByPoint(point, geometry);\n const firstXValue = first[FIELD_ORIGIN][xField];\n const firstYValue = first[FIELD_ORIGIN][yField];\n const lastXValue = last[FIELD_ORIGIN][xField];\n const isYArray = yScale.isLinear && isArray(firstYValue); // 考虑 x 维度相同,y 是数组区间的情况\n\n // 如果 x 的值是数组\n if (isArray(firstXValue)) {\n for (let index = 0; index < data.length; index++) {\n const record = data[index];\n const originData = record[FIELD_ORIGIN];\n // xValue 在 originData[xField] 的数值区间内\n if (xScale.translate(originData[xField][0]) <= xValue && xScale.translate(originData[xField][1]) >= xValue) {\n if (isYArray) {\n // 层叠直方图场景,x 和 y 都是数组区间\n if (!isArray(rst)) {\n rst = [];\n }\n rst.push(record);\n } else {\n rst = record;\n break;\n }\n }\n }\n if (isArray(rst)) {\n rst = filterYValue(rst, point, geometry);\n }\n } else {\n let next;\n if (!xScale.isLinear && xScale.type !== 'timeCat') {\n // x 轴对应的数据为非线性以及非时间类型的数据采用遍历查找\n for (let index = 0; index < data.length; index++) {\n const record = data[index];\n const originData = record[FIELD_ORIGIN];\n if (snapEqual(originData[xField], xValue, xScale)) {\n if (isYArray) {\n if (!isArray(rst)) {\n rst = [];\n }\n rst.push(record);\n } else {\n rst = record;\n break;\n }\n } else if (xScale.translate(originData[xField]) <= xValue) {\n last = record;\n next = data[index + 1];\n }\n }\n\n if (isArray(rst)) {\n rst = filterYValue(rst, point, geometry);\n }\n } else {\n // x 轴对应的数据为线性以及时间类型,进行二分查找,性能更好\n if (\n (xValue > xScale.translate(lastXValue) || xValue < xScale.translate(firstXValue)) &&\n (xValue > xScale.max || xValue < xScale.min)\n ) {\n // 不在数据范围内\n return null;\n }\n\n let firstIdx = 0;\n let lastIdx = data.length - 1;\n let middleIdx;\n while (firstIdx <= lastIdx) {\n middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n const item = data[middleIdx][FIELD_ORIGIN][xField];\n if (snapEqual(item, xValue, xScale)) {\n return data[middleIdx];\n }\n\n if (xScale.translate(item) <= xScale.translate(xValue)) {\n firstIdx = middleIdx + 1;\n last = data[middleIdx];\n next = data[middleIdx + 1];\n } else {\n if (lastIdx === 0) {\n last = data[0];\n }\n lastIdx = middleIdx - 1;\n }\n }\n }\n\n if (last && next) {\n // 计算最逼近的\n if (\n Math.abs(xScale.translate(last[FIELD_ORIGIN][xField]) - xValue) >\n Math.abs(xScale.translate(next[FIELD_ORIGIN][xField]) - xValue)\n ) {\n last = next;\n }\n }\n }\n\n const distance = getXDistance(geometry.getXScale()); // 每个分类间的平均间距\n if (!rst && Math.abs(xScale.translate(last[FIELD_ORIGIN][xField]) - xValue) <= distance / 2) {\n rst = last;\n }\n\n return rst;\n}\n\n/**\n * @ignore\n * Gets tooltip items\n * @param data\n * @param geometry\n * @param [title]\n * @returns\n */\nexport function getTooltipItems(\n data: MappingDatum,\n geometry: Geometry,\n title: TooltipTitle = '',\n showNil: boolean = false\n) {\n const originData = data[FIELD_ORIGIN];\n const tooltipTitle = getTooltipTitle(originData, geometry, title);\n const tooltipOption = geometry.tooltipOption;\n const { defaultColor } = geometry.theme;\n const items = [];\n let name;\n let value;\n\n function addItem(itemName, itemValue) {\n if (showNil || (!isNil(itemValue) && itemValue !== '')) {\n // 值为 null的时候,忽视\n const item = {\n title: tooltipTitle,\n data: originData, // 原始数据\n mappingData: data, // 映射后的数据\n name: itemName,\n value: itemValue,\n color: data.color || defaultColor,\n marker: true,\n };\n\n items.push(item);\n }\n }\n\n if (isObject(tooltipOption)) {\n const { fields, callback } = tooltipOption;\n if (callback) {\n // 用户定义了回调函数\n const callbackParams = fields.map((field: string) => {\n return data[FIELD_ORIGIN][field];\n });\n const cfg = callback(...callbackParams);\n const itemCfg = {\n data: data[FIELD_ORIGIN], // 原始数据\n mappingData: data, // 映射后的数据\n title: tooltipTitle,\n color: data.color || defaultColor,\n marker: true, // 默认展示 marker\n ...cfg,\n };\n\n items.push(itemCfg);\n } else {\n const scales = geometry.scales;\n for (const field of fields) {\n if (!isNil(originData[field])) {\n // 字段数据为null, undefined 时不显示\n const scale = scales[field];\n name = getName(scale);\n value = scale.getText(originData[field]);\n addItem(name, value);\n }\n }\n }\n } else {\n const valueScale = getTooltipValueScale(geometry);\n // 字段数据为null ,undefined时不显示\n value = getTooltipValue(originData, valueScale);\n name = getTooltipName(originData, geometry);\n addItem(name, value);\n }\n return items;\n}\n\nfunction getTooltipItemsByFindData(geometry: Geometry, point, title, tooltipCfg: TooltipCfg) {\n const { showNil } = tooltipCfg;\n const result = [];\n const dataArray = geometry.dataArray;\n if (!isEmpty(dataArray)) {\n geometry.sort(dataArray); // 先进行排序,便于 tooltip 查找\n for (const data of dataArray) {\n const record = findDataByPoint(point, data, geometry);\n if (record) {\n const elementId = geometry.getElementId(record);\n const element = geometry.elementsMap[elementId];\n if (geometry.type === 'heatmap' || element.visible) {\n // Heatmap 没有 Element\n // 如果图形元素隐藏了,怎不再 tooltip 上展示相关数据\n const items = getTooltipItems(record, geometry, title, showNil);\n if (items.length) {\n result.push(items);\n }\n }\n }\n }\n }\n\n return result;\n}\n\nfunction getTooltipItemsByHitShape(geometry, point, title, tooltipCfg: TooltipCfg) {\n const { showNil } = tooltipCfg;\n const result = [];\n const container = geometry.container;\n const shape = container.getShape(point.x, point.y);\n if (shape && shape.get('visible') && shape.get('origin')) {\n const mappingData = shape.get('origin').mappingData;\n const items = getTooltipItems(mappingData, geometry, title, showNil);\n if (items.length) {\n result.push(items);\n }\n }\n\n return result;\n}\n\n/**\n * 不进行递归查找\n */\nexport function findItemsFromView(view: View, point: Point, tooltipCfg: TooltipCfg) {\n const result = [];\n // 先从 view 本身查找\n const geometries = view.geometries;\n const { shared, title, reversed } = tooltipCfg;\n for (const geometry of geometries) {\n if (geometry.visible && geometry.tooltipOption !== false) {\n // geometry 可见同时未关闭 tooltip\n const geometryType = geometry.type;\n let tooltipItems;\n if (['point', 'edge', 'polygon'].includes(geometryType)) {\n // 始终通过图形拾取\n tooltipItems = getTooltipItemsByHitShape(geometry, point, title, tooltipCfg);\n } else if (['area', 'line', 'path', 'heatmap'].includes(geometryType)) {\n // 如果是 'area', 'line', 'path',始终通过数据查找方法查找 tooltip\n tooltipItems = getTooltipItemsByFindData(geometry, point, title, tooltipCfg);\n } else {\n if (shared !== false) {\n tooltipItems = getTooltipItemsByFindData(geometry, point, title, tooltipCfg);\n } else {\n tooltipItems = getTooltipItemsByHitShape(geometry, point, title, tooltipCfg);\n }\n }\n if (tooltipItems.length) {\n if (reversed) {\n tooltipItems.reverse();\n }\n // geometry 有可能会有多个 item,因为用户可以设置 geometry.tooltip('x*y*z')\n result.push(tooltipItems);\n }\n }\n }\n\n return result;\n}\n\nexport function findItemsFromViewRecurisive(view: View, point: Point, tooltipCfg: TooltipCfg) {\n let result = findItemsFromView(view, point, tooltipCfg);\n\n // 递归查找,并合并结果\n for (const childView of view.views) {\n result = result.concat(findItemsFromView(childView, point, tooltipCfg));\n }\n\n return result;\n}\n","import { isArray, isNumber } from '@antv/util';\nimport { Padding, ViewPadding } from '../interface';\n\n/**\n * @ignore\n * 是否是自动 padding\n * @param padding\n */\nexport function isAutoPadding(padding: ViewPadding): padding is 'auto' {\n return !isNumber(padding) && !isArray(padding);\n}\n\n/**\n * @ignore\n * padding 的解析逻辑\n * @param padding\n * @return [ top, right, bottom, left ]\n */\nexport function parsePadding(padding: number[] | number = 0): Padding {\n let paddingArray = isArray(padding) ? padding : [padding];\n\n switch (paddingArray.length) {\n case 0:\n paddingArray = [0, 0, 0, 0];\n break;\n case 1:\n paddingArray = new Array(4).fill(paddingArray[0]);\n break;\n case 2:\n paddingArray = [...paddingArray, ...paddingArray];\n break;\n case 3:\n paddingArray = [...paddingArray, paddingArray[1]];\n break;\n default:\n // 其他情况,只去四个\n paddingArray = paddingArray.slice(0, 4);\n break;\n }\n\n return paddingArray as [number, number, number, number];\n}\n","import { ControllerCtor } from './base';\n\nconst LOAD_COMPONENT_CONTROLLERS: Record = {};\n\n/**\n * 全局注册组件。\n * @param name 组件名称\n * @param plugin 注册的组件类\n * @returns void\n */\nexport function registerComponentController(name: string, plugin: ControllerCtor) {\n LOAD_COMPONENT_CONTROLLERS[name] = plugin;\n}\n\n/**\n * 删除全局组件。\n * @param name 组件名\n * @returns void\n */\nexport function unregisterComponentController(name: string) {\n delete LOAD_COMPONENT_CONTROLLERS[name];\n}\n\n/**\n * 获取以注册的组件名。\n * @returns string[] 返回已注册的组件名称\n */\nexport function getComponentControllerNames(): string[] {\n return Object.keys(LOAD_COMPONENT_CONTROLLERS);\n}\n\n/**\n * 根据组件名获取组件类。\n * @param name 组件名\n * @returns 返回组件类\n */\nexport function getComponentController(name: string): ControllerCtor {\n return LOAD_COMPONENT_CONTROLLERS[name];\n}\n","import { each, isNil, some } from '@antv/util';\nimport { Coordinate, getCoordinate, Point } from '../../dependents';\nimport { CoordinateOption } from '../../interface';\n\n/**\n * coordinate controller,职责:\n * 1. 创建实例\n * 2. 暂存配置\n */\nexport default class CoordinateController {\n private option: CoordinateOption;\n private coordinate: Coordinate;\n\n constructor(option?: CoordinateOption) {\n // 设置默认值,并存储配置\n this.option = this.wrapperOption(option);\n }\n\n /**\n * 更新配置\n * @param option\n */\n public update(option: CoordinateOption) {\n this.option = this.wrapperOption(option);\n return this;\n }\n\n /**\n * 是否存在某一个 action\n * @param actionName\n */\n public hasAction(actionName: string) {\n const { actions } = this.option;\n\n return some(actions, (action) => action[0] === actionName);\n }\n /**\n * 创建坐标系对象\n * @param start 起始位置\n * @param end 结束位置\n * @return 坐标系实例\n */\n public create(start: Point, end: Point) {\n const { type, cfg } = this.option;\n const isTheta = type === 'theta';\n\n // 1. 起始位置\n const props = {\n start,\n end,\n ...cfg,\n };\n\n // 2. 创建实例\n const C = getCoordinate(isTheta ? 'polar' : type);\n\n this.coordinate = new C(props);\n\n // @ts-ignore FIXME coordinate 包问题导致 type 不正确\n this.coordinate.type = type;\n\n // 3. 添加默认 action\n if (isTheta) {\n // 不存在 transpose,为其自动设置一个 action\n if (!this.hasAction('transpose')) {\n this.transpose();\n }\n }\n\n // 4. 执行 action\n this.execActions();\n\n return this.coordinate;\n }\n\n /**\n * 更新坐标系对象\n * @param start 起始位置\n * @param end 结束位置\n * @return 坐标系实例\n */\n public adjust(start: Point, end: Point) {\n this.coordinate.update({\n start,\n end,\n });\n\n // 更新坐标系大小的时候,需要:\n // 1. 重置 matrix\n // 2. 重新执行作用于 matrix 的 action\n this.coordinate.resetMatrix();\n this.execActions(['scale', 'rotate', 'translate']);\n\n return this.coordinate;\n }\n\n /**\n * 旋转弧度\n * @param angle\n */\n public rotate(angle: number) {\n this.option.actions.push(['rotate', angle]);\n return this;\n }\n\n /**\n * 镜像\n * @param dim\n */\n public reflect(dim: 'x' | 'y') {\n this.option.actions.push(['reflect', dim]);\n return this;\n }\n\n /**\n * scale\n * @param sx\n * @param sy\n */\n public scale(sx: number, sy: number) {\n this.option.actions.push(['scale', sx, sy]);\n return this;\n }\n\n /**\n * 对角变换\n */\n public transpose() {\n this.option.actions.push(['transpose']);\n return this;\n }\n\n /**\n * 获取配置\n */\n public getOption(): CoordinateOption {\n return this.option;\n }\n\n /**\n * 获得 coordinate 实例\n */\n public getCoordinate() {\n return this.coordinate;\n }\n\n /**\n * 包装配置的默认值\n * @param option\n */\n private wrapperOption(option: CoordinateOption): CoordinateOption {\n return {\n type: 'rect',\n actions: [],\n cfg: {},\n ...option,\n };\n }\n\n /**\n * coordinate 实例执行 actions\n * @params includeActions 如果没有指定,则执行全部,否则,执行指定的 action\n */\n private execActions(includeActions?: string[]) {\n const { actions } = this.option;\n\n each(actions, (action) => {\n const [actionName, ...args] = action;\n\n const shouldExec = isNil(includeActions) ? true : includeActions.includes(actionName);\n\n if (shouldExec) {\n this.coordinate[actionName](...args);\n }\n });\n }\n}\n","import { Event as GEvent, IShape } from '../dependents';\nimport { Datum } from '../interface';\nimport View from './view';\n\n/**\n * @todo Whether it can(or necessary to) keep consistent with the structure of G.Event or directly use the structure of G.Event\n * G2 事件的事件包装类,基于 G.Event\n */\nexport default class Event {\n /** 当前 target 归属的 view 实例 */\n public view: View;\n /** 被包装的原生 G 事件 */\n public gEvent: GEvent;\n /** 原始数据 */\n public data?: Datum;\n /** 事件类型 */\n public type: string;\n\n constructor(view: View, gEvent: GEvent, data?: Datum) {\n this.view = view;\n this.gEvent = gEvent;\n this.data = data;\n this.type = gEvent.type;\n }\n\n /**\n * 非交互产生的事件\n * @param view\n * @param type\n * @param data\n */\n public static fromData(view: View, type: string, data: Datum) {\n return new Event(view, new GEvent(type, {}), data);\n }\n\n // below props are proxy props of G.event convenient\n\n /** the real trigger shape of the event */\n public get target(): IShape {\n // @todo G 中事件定义为 object 不正确,这里先 ignore\n // @ts-ignore\n return this.gEvent.target;\n }\n\n /** 获取对应的 dom 原生时间 */\n public get event(): any {\n return this.gEvent.originalEvent;\n }\n\n /** x 画布坐标 */\n public get x(): number {\n return this.gEvent.x;\n }\n\n /** y 画布坐标 */\n public get y(): number {\n return this.gEvent.y;\n }\n\n /** x 窗口坐标 */\n public get clientX(): number {\n return this.gEvent.clientX;\n }\n\n /** y 窗口坐标 */\n public get clientY(): number {\n return this.gEvent.clientY;\n }\n // end for proxy events\n\n /**\n * event string\n * @returns string\n */\n public toString(): string {\n return `[Event (type=${this.type})]`;\n }\n\n /**\n * clone a new event with same attributes\n * @returns [[Event]]\n */\n public clone(): Event {\n return new Event(this.view, this.gEvent, this.data);\n }\n}\n","import { Controller } from '../controller/base';\nimport View from '../view';\n\n// 布局函数的定义\n// 布局函数的职责:根据 view 中组件信息,计算出最终的图形 padding 数值,以及最终各个组件的布局和位置\nexport type Layout = (view: View) => void;\n\n/**\n * @ignore\n * G2 默认提供的 layout 函数\n * 内置布局函数处理的逻辑:\n *\n * 1. 如果 padding = 'auto',那么自动根据组件的 direction 来计算 padding 数组\n * 2. 根据 padding 和 direction 去分配对应方向的 padding 数值\n * 3. 移动组件位置\n *\n * 前面 1,2 步骤在 view 中已经做掉了。对于组件响应式布局,可以尝试使用约束布局的方式去求解位置信息。\n * @param view\n */\nexport default function defaultLayout(view: View): void {\n const axis = view.getController('axis');\n const legend = view.getController('legend');\n const annotation = view.getController('annotation');\n const slider = view.getController('slider');\n const scrollbar = view.getController('scrollbar');\n\n // 根据最新的 coordinate 重新布局组件\n [axis, slider, scrollbar, legend, annotation].forEach((controller: Controller) => {\n if (controller) {\n controller.layout();\n }\n });\n}\n","/**\n * view 中缓存 scale 的类\n */\nimport { deepMix, each, get, isNumber, last } from '@antv/util';\nimport { Scale, Coordinate } from '../../dependents';\nimport { Data, LooseObject, ScaleOption, ViewCfg } from '../../interface';\nimport { createScaleByField, syncScale, getDefaultCategoryScaleRange } from '../../util/scale';\n\n/** @ignore */\ninterface ScaleMeta {\n readonly key: string;\n readonly scale: Scale;\n scaleDef: ScaleOption;\n syncKey?: string;\n}\n\n/** @ignore */\nexport class ScalePool {\n /** 所有的 scales */\n private scales = new Map();\n /** 需要同步的 scale 分组, key: scaleKeyArray */\n private syncScales = new Map();\n\n /**\n * 创建 scale\n * @param field\n * @param data\n * @param scaleDef\n * @param key\n */\n public createScale(field: string, data: Data, scaleDef: ScaleOption, key: string): Scale {\n let finalScaleDef = scaleDef;\n\n const cacheScaleMeta = this.getScaleMeta(key);\n if (data.length === 0 && cacheScaleMeta) {\n // 在更新过程中数据变为空,同时 key 对应的 scale 已存在则保持 scale 同类型\n const cacheScale = cacheScaleMeta.scale;\n const cacheScaleDef: LooseObject = {\n type: cacheScale.type,\n };\n if (cacheScale.isCategory) {\n // 如果是分类类型,保持 values\n cacheScaleDef.values = cacheScale.values;\n }\n finalScaleDef = deepMix(cacheScaleDef, cacheScaleMeta.scaleDef, scaleDef);\n }\n\n const scale = createScaleByField(field, data, finalScaleDef);\n\n // 缓存起来\n this.cacheScale(scale, scaleDef, key);\n\n return scale;\n }\n\n /**\n * 同步 scale\n */\n public sync(coordinate: Coordinate, theme: ViewCfg['theme']) {\n // 对于 syncScales 中每一个 syncKey 下面的 scale 数组进行同步处理\n this.syncScales.forEach((scaleKeys: string[], syncKey: string) => {\n // min, max, values, ranges\n let min = Number.MAX_SAFE_INTEGER;\n let max = Number.MIN_SAFE_INTEGER;\n const values = [];\n\n // 1. 遍历求得最大最小值,values 等\n each(scaleKeys, (key: string) => {\n const scale = this.getScale(key);\n\n max = isNumber(scale.max) ? Math.max(max, scale.max) : max;\n min = isNumber(scale.min) ? Math.min(min, scale.min) : min;\n\n // 去重\n each(scale.values, (v: any) => {\n if (!values.includes(v)) {\n values.push(v);\n }\n });\n });\n\n // 2. 同步\n each(scaleKeys, (key: string) => {\n const scale = this.getScale(key);\n\n if (scale.isContinuous) {\n scale.change({\n min,\n max,\n values,\n });\n } else if (scale.isCategory) {\n let range = scale.range;\n const cacheScaleMeta = this.getScaleMeta(key);\n\n // 存在 value 值,且用户没有配置 range 配置 to fix https://github.com/antvis/G2/issues/2996\n if (values && !get(cacheScaleMeta, ['scaleDef', 'range'])) {\n // 更新 range\n range = getDefaultCategoryScaleRange(\n deepMix({}, scale, {\n values,\n }),\n coordinate,\n theme\n );\n }\n scale.change({\n values,\n range,\n });\n }\n });\n });\n }\n\n /**\n * 缓存一个 scale\n * @param scale\n * @param scaleDef\n * @param key\n */\n private cacheScale(scale: Scale, scaleDef: ScaleOption, key: string) {\n // 1. 缓存到 scales\n\n let sm = this.getScaleMeta(key);\n // 存在则更新,同时检测类型是否一致\n if (sm && sm.scale.type === scale.type) {\n syncScale(sm.scale, scale);\n sm.scaleDef = scaleDef;\n // 更新 scaleDef\n } else {\n sm = {\n key,\n scale,\n scaleDef,\n };\n\n this.scales.set(key, sm);\n }\n\n // 2. 缓存到 syncScales,构造 Record 数据结构\n const syncKey = this.getSyncKey(sm);\n sm.syncKey = syncKey; // 设置 sync 同步的 key\n\n // 因为存在更新 scale 机制,所以在缓存之前,先从原 syncScales 中去除 sync 的缓存引用\n this.removeFromSyncScales(key);\n\n // 存在 sync 标记才进行 sync\n if (syncKey) {\n // 不存在这个 syncKey,则创建一个空数组\n let scaleKeys = this.syncScales.get(syncKey);\n if (!scaleKeys) {\n scaleKeys = [];\n this.syncScales.set(syncKey, scaleKeys);\n }\n scaleKeys.push(key);\n }\n }\n\n /**\n * 通过 key 获取 scale\n * @param key\n */\n public getScale(key: string): Scale {\n let scaleMeta = this.getScaleMeta(key);\n if (!scaleMeta) {\n const field = last(key.split('-'));\n const scaleKeys = this.syncScales.get(field);\n if (scaleKeys && scaleKeys.length) {\n scaleMeta = this.getScaleMeta(scaleKeys[0]);\n }\n }\n return scaleMeta && scaleMeta.scale;\n }\n\n /**\n * 在 view 销毁的时候,删除 scale 实例,防止内存泄露\n * @param key\n */\n public deleteScale(key: string) {\n const scaleMeta = this.getScaleMeta(key);\n if (scaleMeta) {\n const { syncKey } = scaleMeta;\n\n const scaleKeys = this.syncScales.get(syncKey);\n\n // 移除同步的关系\n if (scaleKeys && scaleKeys.length) {\n const idx = scaleKeys.indexOf(key);\n\n if (idx !== -1) {\n scaleKeys.splice(idx, 1);\n }\n }\n }\n\n // 删除 scale 实例\n this.scales.delete(key);\n }\n\n /**\n * 清空\n */\n public clear() {\n this.scales.clear();\n this.syncScales.clear();\n }\n\n /**\n * 删除 sync scale 引用\n * @param key\n */\n private removeFromSyncScales(key: string) {\n this.syncScales.forEach((scaleKeys: string[], syncKey: string) => {\n const idx = scaleKeys.indexOf(key);\n\n if (idx !== -1) {\n scaleKeys.splice(idx, 1);\n\n // 删除空数组值\n if (scaleKeys.length === 0) {\n this.syncScales.delete(syncKey);\n }\n\n return false; // 跳出循环\n }\n });\n }\n\n /**\n * get sync key\n * @param sm\n */\n private getSyncKey(sm: ScaleMeta): string {\n const { scale, scaleDef } = sm;\n const { field } = scale;\n const sync = get(scaleDef, ['sync']);\n\n // 如果 sync = true,则直接使用字段名作为 syncKey\n return sync === true ? field : sync === false ? undefined : sync;\n }\n\n /**\n * 通过 key 获取 scale\n * @param key\n */\n private getScaleMeta(key: string): ScaleMeta {\n return this.scales.get(key);\n }\n}\n","import { DIRECTION } from '../../constant';\nimport { BBox } from '../../dependents';\nimport { Padding } from '../../interface';\n\nexport type PaddingCalCtor = {\n readonly instance: (top?: number, right?: number, bottom?: number, left?: number) => PaddingCal;\n};\n\n/** @ignore */\nexport class PaddingCal {\n private top: number;\n private right: number;\n private bottom: number;\n private left: number;\n\n /**\n * 使用静态方法创建一个\n * @param top\n * @param right\n * @param bottom\n * @param left\n */\n public static instance(top: number = 0, right: number = 0, bottom: number = 0, left: number = 0) {\n return new PaddingCal(top, right, bottom, left);\n }\n\n /**\n * 初始的 padding 数据\n * @param top\n * @param right\n * @param bottom\n * @param left\n */\n constructor(top: number = 0, right: number = 0, bottom: number = 0, left: number = 0) {\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n\n /**\n * 取最大区间\n * @param padding\n */\n public max(padding: Padding): PaddingCal {\n const [top, right, bottom, left] = padding;\n\n this.top = Math.max(this.top, top);\n this.right = Math.max(this.right, right);\n this.bottom = Math.max(this.bottom, bottom);\n this.left = Math.max(this.left, left);\n\n return this;\n }\n\n /**\n * 四周增加 padding\n * @param padding\n */\n public shrink(padding: Padding): PaddingCal {\n const [top, right, bottom, left] = padding;\n\n this.top += top;\n this.right += right;\n this.bottom += bottom;\n this.left += left;\n\n return this;\n }\n\n /**\n * 在某一个方向增加 padding\n * @param bbox\n * @param direction\n */\n public inc(bbox: BBox, direction: DIRECTION): PaddingCal {\n const { width, height } = bbox;\n\n switch (direction) {\n case DIRECTION.TOP:\n case DIRECTION.TOP_LEFT:\n case DIRECTION.TOP_RIGHT:\n this.top += height;\n break;\n\n case DIRECTION.RIGHT:\n case DIRECTION.RIGHT_TOP:\n case DIRECTION.RIGHT_BOTTOM:\n this.right += width;\n break;\n\n case DIRECTION.BOTTOM:\n case DIRECTION.BOTTOM_LEFT:\n case DIRECTION.BOTTOM_RIGHT:\n this.bottom += height;\n break;\n\n case DIRECTION.LEFT:\n case DIRECTION.LEFT_TOP:\n case DIRECTION.LEFT_BOTTOM:\n this.left += width;\n break;\n default:\n break;\n }\n\n return this;\n }\n\n /**\n * 获得最终的 padding\n */\n public getPadding(): Padding {\n return [this.top, this.right, this.bottom, this.left];\n }\n\n /**\n * clone 一个 padding cal\n */\n public clone(): PaddingCal {\n return new PaddingCal(...this.getPadding());\n }\n}\n","import { each } from '@antv/util';\nimport { COMPONENT_TYPE } from '../../constant';\nimport { ComponentOption, Padding } from '../../interface';\nimport { BBox } from '../../util/bbox';\nimport { isAutoPadding, parsePadding } from '../../util/padding';\nimport View from '../view';\nimport { PaddingCal } from './padding-cal';\n\n/**\n * @ignore\n * 根据 view 中的组件,计算实际的 padding 数值\n * @param view\n */\nexport function calculatePadding(view: View): PaddingCal {\n const padding = view.padding;\n\n // 如果不是 auto padding,那么直接解析之后返回\n if (!isAutoPadding(padding)) {\n return new PaddingCal(...parsePadding(padding));\n }\n\n // 是 auto padding,根据组件的情况,来计算 padding\n const { viewBBox } = view;\n\n const paddingCal = new PaddingCal();\n\n const axisComponents = [];\n const paddingComponents = [];\n const otherComponents = [];\n\n each(view.getComponents(), (co: ComponentOption) => {\n const { type } = co;\n if (type === COMPONENT_TYPE.AXIS) {\n axisComponents.push(co);\n } else if ([COMPONENT_TYPE.LEGEND, COMPONENT_TYPE.SLIDER, COMPONENT_TYPE.SCROLLBAR].includes(type)) {\n paddingComponents.push(co);\n } else if (type !== COMPONENT_TYPE.GRID && type !== COMPONENT_TYPE.TOOLTIP) {\n otherComponents.push(co);\n }\n });\n\n // 进行坐标轴布局,应该是取 padding 的并集,而不是进行相加\n each(axisComponents, (co: ComponentOption) => {\n const { component } = co;\n const bboxObject = component.getLayoutBBox();\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);\n\n const exceed = componentBBox.exceed(viewBBox);\n\n // 在对组件分组之后,先对 axis 进行处理,然后取最大的超出即可。\n paddingCal.max(exceed);\n });\n\n // 有 padding 的组件布局\n each(paddingComponents, (co: ComponentOption) => {\n const { component, direction } = co;\n const bboxObject = component.getLayoutBBox();\n const componentPadding: Padding = component.get('padding');\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(\n componentPadding\n );\n // 按照方向计算 padding\n paddingCal.inc(componentBBox, direction);\n });\n\n // 其他组件布局\n each(otherComponents, (co: ComponentOption) => {\n const { component, direction } = co;\n const bboxObject = component.getLayoutBBox();\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);\n // 按照方向计算 padding\n paddingCal.inc(componentBBox, direction);\n });\n\n return paddingCal;\n}\n","import { PaddingCalCtor } from '../layout/padding-cal';\nimport { View } from '../view';\n\n/**\n * 默认的 syncViewPadding 逻辑\n * @param chart\n * @param views\n * @param PC: PaddingCalCtor\n */\nexport function defaultSyncViewPadding(chart: View, views: View[], PC: PaddingCalCtor) {\n const syncPadding = PC.instance();\n\n // 所有的 view 的 autoPadding 指向同一个引用\n views.forEach((v: View) => {\n v.autoPadding = syncPadding.max(v.autoPadding.getPadding());\n });\n}\n","import {\n clone,\n deepMix,\n each,\n filter,\n find,\n flatten,\n get,\n isBoolean,\n isFunction,\n isNil,\n isObject,\n isString,\n isUndefined,\n mix,\n remove,\n set,\n size,\n uniqueId,\n isEqual,\n isPlainObject,\n reduce,\n} from '@antv/util';\nimport { Attribute, Coordinate, Event as GEvent, GroupComponent, ICanvas, IGroup, IShape, Scale } from '../dependents';\nimport {\n AxisOption,\n ComponentOption,\n CoordinateCfg,\n CoordinateOption,\n Data,\n Datum,\n FacetCfgMap,\n FilterCondition,\n GeometryOption,\n LegendOption,\n LooseObject,\n Options,\n Point,\n Region,\n ScaleOption,\n TooltipOption,\n ViewCfg,\n ViewPadding,\n ViewAppendPadding,\n EventPayload,\n Padding,\n} from '../interface';\nimport { GROUP_Z_INDEX, LAYER, PLOT_EVENTS, VIEW_LIFE_CIRCLE } from '../constant';\nimport Base from '../base';\nimport { Facet, getFacet } from '../facet';\nimport Geometry from '../geometry/base';\nimport Element from '../geometry/element';\nimport { createInteraction, Interaction } from '../interaction';\nimport { getTheme } from '../theme';\nimport { BBox } from '../util/bbox';\nimport { getCoordinateClipCfg, isPointInCoordinate } from '../util/coordinate';\nimport { uniq } from '../util/helper';\nimport { findDataByPoint } from '../util/tooltip';\nimport { parsePadding } from '../util/padding';\nimport { getDefaultCategoryScaleRange } from '../util/scale';\nimport { createTheme } from '../theme/util';\nimport Chart from './chart';\nimport { getComponentController, getComponentControllerNames } from './controller';\nimport Annotation from './controller/annotation';\nimport { Controller } from './controller/base';\nimport CoordinateController from './controller/coordinate';\nimport Tooltip from './controller/tooltip';\nimport Slider from './controller/slider';\nimport Scrollbar from './controller/scrollbar';\nimport Axis from './controller/axis';\nimport Gesture from './controller/gesture';\nimport Legend from './controller/legend';\nimport Event from './event';\nimport defaultLayout, { Layout } from './layout';\nimport { ScalePool } from './util/scale-pool';\nimport { PaddingCal } from './layout/padding-cal';\nimport { calculatePadding } from './layout/auto';\nimport { defaultSyncViewPadding } from './util/sync-view-padding';\n\n/**\n * G2 视图 View 类\n */\nexport class View extends Base {\n /** view id,全局唯一。 */\n public id: string;\n /** 父级 view,如果没有父级,则为空。 */\n public parent: View;\n /** 所有的子 view。 */\n public views: View[] = [];\n /** 所有的 geometry 实例。 */\n public geometries: Geometry[] = [];\n /** 所有的组件 controllers。 */\n public controllers: Controller[] = [];\n /** 所有的 Interaction 实例。 */\n public interactions: Record = {};\n\n /** view 区域空间。 */\n public viewBBox: BBox;\n /** 坐标系的位置大小,ViewBBox - padding = coordinateBBox。 */\n public coordinateBBox: BBox;\n /** view 的 padding 大小,传入的配置(不是解析之后的值)。 */\n public padding: ViewPadding;\n /** padding的基础上增加的调整值 */\n public appendPadding: ViewAppendPadding;\n /** G.Canvas 实例。 */\n public canvas: ICanvas;\n /** 存储最终计算的 padding 结果 */\n public autoPadding: PaddingCal;\n\n /** 三层 Group 图形中的背景层。 */\n public backgroundGroup: IGroup;\n /** 三层 Group 图形中的中间层。 */\n public middleGroup: IGroup;\n /** 三层 Group 图形中的前景层。 */\n public foregroundGroup: IGroup;\n /** 是否对超出坐标系范围的 Geometry 进行剪切 */\n public limitInPlot: boolean = false;\n\n /**\n * 标记 view 的大小位置范围,均是 0 ~ 1 范围,便于开发者使用,起始点为左上角。\n */\n protected region: Region;\n /** 主题配置,存储当前主题配置。 */\n protected themeObject: LooseObject;\n\n // 配置信息存储\n protected options: Options = {\n data: [],\n animate: true, // 默认开启动画\n }; // 初始化为空\n\n /** 过滤之后的数据 */\n protected filteredData: Data;\n\n /** 配置开启的组件插件,默认为全局配置的组件。 */\n private usedControllers: string[] = getComponentControllerNames();\n\n /** 所有的 scales */\n private scalePool: ScalePool = new ScalePool();\n\n /** 布局函数 */\n protected layoutFunc: Layout = defaultLayout;\n /** 生成的坐标系实例,{@link https://github.com/antvis/coord/blob/master/src/coord/base.ts|Coordinate} */\n protected coordinateInstance: Coordinate;\n /** Coordinate 相关的控制器类,负责坐标系实例的创建、更新、变换等 */\n protected coordinateController: CoordinateController;\n /** 分面类实例 */\n protected facetInstance: Facet;\n\n /** 当前鼠标是否在 plot 内(CoordinateBBox) */\n private isPreMouseInPlot: boolean = false;\n /** 默认标识位,用于判定数据是否更新 */\n private isDataChanged: boolean = false;\n /** 用于判断坐标系范围是否发生变化的标志位 */\n private isCoordinateChanged: boolean = false;\n /** 从当前这个 view 创建的 scale key */\n private createdScaleKeys = new Map();\n /** 背景色样式的 shape */\n private backgroundStyleRectShape;\n /** 是否同步子 view 的 padding */\n private syncViewPadding;\n\n constructor(props: ViewCfg) {\n super({ visible: props.visible });\n\n const {\n id = uniqueId('view'),\n parent,\n canvas,\n backgroundGroup,\n middleGroup,\n foregroundGroup,\n region = { start: { x: 0, y: 0 }, end: { x: 1, y: 1 } },\n padding,\n appendPadding,\n theme,\n options,\n limitInPlot,\n syncViewPadding,\n } = props;\n\n this.parent = parent;\n this.canvas = canvas;\n this.backgroundGroup = backgroundGroup;\n this.middleGroup = middleGroup;\n this.foregroundGroup = foregroundGroup;\n this.region = region;\n this.padding = padding;\n this.appendPadding = appendPadding;\n // 接受父 view 传入的参数\n this.options = { ...this.options, ...options };\n this.limitInPlot = limitInPlot;\n this.id = id;\n this.syncViewPadding = syncViewPadding;\n\n // 初始化 theme\n this.themeObject = isObject(theme) ? deepMix({}, getTheme('default'), createTheme(theme)) : getTheme(theme);\n this.init();\n }\n\n /**\n * 设置 layout 布局函数\n * @param layout 布局函数\n * @returns void\n */\n public setLayout(layout: Layout) {\n this.layoutFunc = layout;\n }\n\n /**\n * 生命周期:初始化\n * @returns voids\n */\n public init() {\n // 计算画布的 viewBBox\n this.calculateViewBBox();\n\n // 事件委托机制\n this.initEvents();\n\n // 初始化组件 controller\n this.initComponentController();\n\n this.initOptions();\n }\n\n /**\n * 生命周期:渲染流程,渲染过程需要处理数据更新的情况。\n * render 函数仅仅会处理 view 和子 view。\n * @param isUpdate 是否触发更新流程。\n * @param params render 事件参数\n */\n public render(isUpdate: boolean = false, payload?: EventPayload) {\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_RENDER, Event.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_RENDER, payload));\n // 递归渲染\n this.paint(isUpdate);\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_RENDER, Event.fromData(this, VIEW_LIFE_CIRCLE.AFTER_RENDER, payload));\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n }\n\n /**\n * 生命周期:清空图表上所有的绘制内容,但是不销毁图表,chart 仍可使用。\n * @returns void\n */\n public clear() {\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CLEAR);\n // 1. 清空缓存和计算数据\n this.filteredData = [];\n this.coordinateInstance = undefined;\n this.isDataChanged = false; // 复位\n this.isCoordinateChanged = false; // 复位\n\n // 2. 清空 geometries\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n geometries[i].clear();\n // view 中使用 geometry 的时候,还需要清空它的容器,不然下一次 chart.geometry() 的时候,又创建了一个,导致泄露, #2799。\n geometries[i].container.remove(true);\n geometries[i].labelsContainer.remove(true);\n }\n this.geometries = [];\n\n // 3. 清空 controllers\n const controllers = this.controllers;\n for (let i = 0; i < controllers.length; i++) {\n if (controllers[i].name === 'annotation') {\n // 需要清空配置项\n (controllers[i] as Annotation).clear(true);\n } else {\n controllers[i].clear();\n }\n }\n\n // 4. 删除 scale 缓存\n this.createdScaleKeys.forEach((v: boolean, k: string) => {\n this.getRootView().scalePool.deleteScale(k);\n });\n this.createdScaleKeys.clear();\n\n // 递归处理子 view\n const views = this.views;\n for (let i = 0; i < views.length; i++) {\n views[i].clear();\n }\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CLEAR);\n }\n\n /**\n * 生命周期:销毁,完全无法使用。\n * @returns void\n */\n public destroy() {\n // 销毁前事件,销毁之后已经没有意义了,所以不抛出事件\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_DESTROY);\n const interactions = this.interactions;\n // 销毁 interactions\n each(interactions, (interaction) => {\n if (interaction) {\n // 有可能已经销毁,设置了 undefined\n interaction.destroy();\n }\n });\n\n this.clear();\n\n // 销毁 controller 中的组件\n const controllers = this.controllers;\n for (let i = 0, len = controllers.length; i < len; i++) {\n const controller = controllers[i];\n controller.destroy();\n }\n\n this.backgroundGroup.remove(true);\n this.middleGroup.remove(true);\n this.foregroundGroup.remove(true);\n\n super.destroy();\n }\n /* end 生命周期函数 */\n\n /**\n * 显示或者隐藏整个 view。\n * @param visible 是否可见\n * @returns View\n */\n public changeVisible(visible: boolean): View {\n super.changeVisible(visible);\n\n const geometries = this.geometries;\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geometry = geometries[i];\n geometry.changeVisible(visible);\n }\n\n const controllers = this.controllers;\n for (let i = 0, len = controllers.length; i < len; i++) {\n const controller = controllers[i];\n controller.changeVisible(visible);\n }\n\n this.foregroundGroup.set('visible', visible);\n this.middleGroup.set('visible', visible);\n this.backgroundGroup.set('visible', visible);\n\n // group.set('visible', visible) 不会触发自动刷新\n this.getCanvas().draw();\n\n return this;\n }\n\n /**\n * 装载数据源。\n *\n * ```ts\n * view.data([{ city: '杭州', sale: 100 }, { city: '上海', sale: 110 } ]);\n * ```\n *\n * @param data 数据源,json 数组。\n * @returns View\n */\n public data(data: Data): View {\n set(this.options, 'data', data);\n this.isDataChanged = true;\n return this;\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #data(data)}\n */\n public source(data: Data): View {\n console.warn('This method will be removed at G2 V4.1. Please use chart.data() instead.');\n return this.data(data);\n }\n\n /**\n * 设置数据筛选规则。\n *\n * ```ts\n * view.filter('city', (value: any, datum: Datum) => value !== '杭州');\n *\n * // 删除 'city' 字段对应的筛选规则。\n * view.filter('city', null);\n * ```\n *\n * @param field 数据字段\n * @param condition 筛选规则\n * @returns View\n */\n public filter(field: string, condition: FilterCondition | null): View {\n if (isFunction(condition)) {\n set(this.options, ['filters', field], condition);\n return this;\n }\n // condition 为空,则表示删除过滤条件\n if (!condition && get(this.options, ['filters', field])) {\n delete this.options.filters[field];\n }\n\n return this;\n }\n\n /**\n * 开启或者关闭坐标轴。\n *\n * ```ts\n * view.axis(false); // 不展示坐标轴\n * ```\n * @param field 坐标轴开关\n */\n public axis(field: boolean): View;\n /**\n * 对特定的某条坐标轴进行配置。\n *\n * @example\n * ```ts\n * view.axis('city', false); // 不展示 'city' 字段对应的坐标轴\n *\n * // 将 'city' 字段对应的坐标轴的标题隐藏\n * view.axis('city', {\n * title: null,\n * });\n * ```\n *\n * @param field 要配置的坐标轴对应的字段名称\n * @param axisOption 坐标轴具体配置,更详细的配置项可以参考:https://github.com/antvis/component#axis\n */\n public axis(field: string, axisOption: AxisOption): View;\n public axis(field: string | boolean, axisOption?: AxisOption): View {\n if (isBoolean(field)) {\n set(this.options, ['axes'], field);\n } else {\n set(this.options, ['axes', field], axisOption);\n }\n\n return this;\n }\n\n /**\n * 对图例进行整体配置。\n *\n * ```ts\n * view.legend(false); // 关闭图例\n *\n * view.legend({\n * position: 'right',\n * }); // 图例进行整体配置\n * ```\n * @param field\n * @returns View\n */\n public legend(field: LegendOption): View;\n /**\n * 对特定的图例进行配置。\n *\n * @example\n * ```ts\n * view.legend('city', false); // 关闭某个图例,通过数据字段名进行关联\n *\n * // 对特定的图例进行配置\n * view.legend('city', {\n * position: 'right',\n * });\n * ```\n *\n * @param field 图例对应的数据字段名称\n * @param legendOption 图例配置,更详细的配置项可以参考:https://github.com/antvis/component#axis\n * @returns View\n */\n public legend(field: string, legendOption: LegendOption): View;\n public legend(field: string | LegendOption, legendOption?: LegendOption): View {\n if (isBoolean(field)) {\n set(this.options, ['legends'], field);\n } else if (isString(field)) {\n set(this.options, ['legends', field], legendOption);\n if (isPlainObject(legendOption) && legendOption?.selected) {\n set(this.options, ['filters', field], (name: string) => {\n return legendOption?.selected[name] ?? true;\n });\n }\n } else {\n // 设置全局的 legend 配置\n set(this.options, ['legends'], field);\n }\n\n return this;\n }\n\n /**\n * 批量设置 scale 配置。\n *\n * ```ts\n * view.scale({\n * sale: {\n * min: 0,\n * max: 100,\n * }\n * });\n * ```\n * Scale 的详细配置项可以参考:https://github.com/antvis/scale#api\n * @returns View\n */\n public scale(field: Record): View;\n /**\n * 为特性的数据字段进行 scale 配置。\n *\n * ```ts\n * view.scale('sale', {\n * min: 0,\n * max: 100,\n * });\n * ```\n *\n * @returns View\n */\n public scale(field: string, scaleOption: ScaleOption): View;\n public scale(field: string | Record, scaleOption?: ScaleOption): View {\n if (isString(field)) {\n set(this.options, ['scales', field], scaleOption);\n } else if (isObject(field)) {\n each(field, (v: ScaleOption, k: string) => {\n set(this.options, ['scales', k], v);\n });\n }\n\n return this;\n }\n\n /**\n * tooltip 提示信息配置。\n *\n * ```ts\n * view.tooltip(false); // 关闭 tooltip\n *\n * view.tooltip({\n * shared: true\n * });\n * ```\n *\n * @param cfg Tooltip 配置,更详细的配置项参考:https://github.com/antvis/component#tooltip\n * @returns View\n */\n public tooltip(cfg: boolean | TooltipOption): View {\n set(this.options, 'tooltip', cfg);\n\n return this;\n }\n\n /**\n * 辅助标记配置。\n *\n * ```ts\n * view.annotation().line({\n * start: ['min', 85],\n * end: ['max', 85],\n * style: {\n * stroke: '#595959',\n * lineWidth: 1,\n * lineDash: [3, 3],\n * },\n * });\n * ```\n * 更详细的配置项:https://github.com/antvis/component#annotation\n * @returns [[Annotation]]\n */\n public annotation(): Annotation {\n return this.getController('annotation');\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #guide()}\n */\n public guide(): Annotation {\n console.warn('This method will be removed at G2 V4.1. Please use chart.annotation() instead.');\n return this.annotation();\n }\n\n /**\n * 坐标系配置。\n *\n * @example\n * ```ts\n * view.coordinate({\n * type: 'polar',\n * cfg: {\n * radius: 0.85,\n * },\n * actions: [\n * [ 'transpose' ],\n * ],\n * });\n * ```\n *\n * @param option\n * @returns\n */\n public coordinate(option?: CoordinateOption): CoordinateController;\n /**\n * 声明坐标系类型,并进行配置。\n *\n * ```ts\n * // 直角坐标系,并进行转置变换\n * view.coordinate('rect').transpose();\n *\n * // 默认创建直角坐标系\n * view.coordinate();\n * ```\n *\n * @param type 坐标系类型\n * @param [coordinateCfg] 坐标系配置\n * @returns\n */\n public coordinate(type: string, coordinateCfg?: CoordinateCfg): CoordinateController;\n public coordinate(type: string | CoordinateOption, coordinateCfg?: CoordinateCfg): CoordinateController {\n // 提供语法糖,使用更简单\n if (isString(type)) {\n set(this.options, 'coordinate', { type, cfg: coordinateCfg } as CoordinateOption);\n } else {\n set(this.options, 'coordinate', type);\n }\n\n // 更新 coordinate 配置\n this.coordinateController.update(this.options.coordinate);\n\n return this.coordinateController;\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #coordinate()}\n */\n public coord(type: string | CoordinateOption, coordinateCfg?: CoordinateCfg): CoordinateController {\n console.warn('This method will be removed at G2 V4.1. Please use chart.coordinate() instead.');\n // @ts-ignore\n return this.coordinate(type, coordinateCfg);\n }\n\n /**\n * view 分面绘制。\n *\n * ```ts\n * view.facet('rect', {\n * rowField: 'province',\n * columnField: 'category',\n * eachView: (innerView: View, facet?: FacetData) => {\n * innerView.line().position('city*sale');\n * },\n * });\n * ```\n *\n * @param type 分面类型\n * @param cfg 分面配置, [[FacetCfgMap]]\n * @returns View\n */\n public facet(type: T, cfg: FacetCfgMap[T]): View {\n // 先销毁掉之前的分面\n if (this.facetInstance) {\n this.facetInstance.destroy();\n }\n\n // 创建新的分面\n const Ctor = getFacet(type);\n\n if (!Ctor) {\n throw new Error(`facet '${type}' is not exist!`);\n }\n\n this.facetInstance = new Ctor(this, { ...cfg, type });\n\n return this;\n }\n\n /*\n * 开启或者关闭动画。\n *\n * ```ts\n * view.animate(false);\n * ```\n *\n * @param status 动画状态,true 表示开始,false 表示关闭\n * @returns View\n */\n public animate(status: boolean): View {\n set(this.options, 'animate', status);\n return this;\n }\n\n /**\n * 更新配置项,用于配置项式声明。\n * @param options 配置项\n */\n public updateOptions(options: Options) {\n this.clear(); // 清空\n mix(this.options, options);\n\n // 需要把已存在的 view 销毁,否则会重复创建\n // 目前针对配置项还没有特别好的 view 更新机制,为了不影响主流流程,所以在这里直接销毁\n this.views.forEach((view) => view.destroy());\n this.views = [];\n\n this.initOptions();\n // 初始化坐标系大小,保证 padding 计算正确\n this.coordinateBBox = this.viewBBox;\n return this;\n }\n\n /**\n * 往 `view.options` 属性中存储配置项。\n * @param name 属性名称\n * @param opt 属性值\n * @returns view\n */\n public option(name: string, opt: any): View {\n // 对于内置的 option,避免覆盖。\n // name 在原型上,说明可能是内置 API,存在 option 被覆盖的风险,不处理\n if (View.prototype[name]) {\n throw new Error(`Can't use built in variable name \"${name}\", please change another one.`);\n }\n\n // 存入到 option 中\n set(this.options, name, opt);\n return this;\n }\n\n /**\n * 设置主题。\n *\n * ```ts\n * view.theme('dark'); // 'dark' 需要事先通过 `registerTheme()` 接口注册完成\n *\n * view.theme({ defaultColor: 'red' });\n * ```\n *\n * @param theme 主题名或者主题配置\n * @returns View\n */\n public theme(theme: string | LooseObject): View {\n this.themeObject = isObject(theme) ? deepMix({}, this.themeObject, createTheme(theme)) : getTheme(theme);\n\n return this;\n }\n\n /* end 一系列传入配置的 API */\n\n /**\n * Call the interaction based on the interaction name\n *\n * ```ts\n * view.interaction('my-interaction', { extra: 'hello world' });\n * ```\n * 详细文档可以参考:https://g2.antv.vision/zh/docs/api/general/interaction\n * @param name interaction name\n * @param cfg interaction config\n * @returns\n */\n public interaction(name: string, cfg?: LooseObject): View {\n const existInteraction = this.interactions[name];\n // 存在则先销毁已有的\n if (existInteraction) {\n existInteraction.destroy();\n }\n\n // 新建交互实例\n const interaction = createInteraction(name, this, cfg);\n if (interaction) {\n interaction.init();\n this.interactions[name] = interaction;\n }\n return this;\n }\n\n /**\n * 移除当前 View 的 interaction\n * ```ts\n * view.removeInteraction('my-interaction');\n * ```\n * @param name interaction name\n */\n public removeInteraction(name: string) {\n const existInteraction = this.interactions[name];\n // 存在则先销毁已有的\n if (existInteraction) {\n existInteraction.destroy();\n this.interactions[name] = undefined;\n }\n }\n\n /**\n * 修改数据,数据更新逻辑,数据更新仅仅影响当前这一层的 view\n *\n * ```ts\n * view.changeData([{ city: '北京', sale: '200' }]);\n * ```\n *\n * @param data\n * @returns void\n */\n public changeData(data: Data) {\n this.isDataChanged = true;\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, Event.fromData(this, VIEW_LIFE_CIRCLE.BEFORE_CHANGE_DATA, null));\n // 1. 保存数据\n this.data(data);\n\n // 2. 渲染\n this.paint(true);\n\n // 3. 遍历子 view 进行 change data\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n // FIXME 子 view 有自己的数据的情况,该如何处理?\n view.changeData(data);\n }\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, Event.fromData(this, VIEW_LIFE_CIRCLE.AFTER_CHANGE_DATA, null));\n }\n\n /* View 管理相关的 API */\n\n /**\n * 创建子 view\n *\n * ```ts\n * const innerView = view.createView({\n * start: { x: 0, y: 0 },\n * end: { x: 0.5, y: 0.5 },\n * padding: 8,\n * });\n * ```\n *\n * @param cfg\n * @returns View\n */\n public createView(cfg?: Partial): View {\n // 将会在 4.1 版本中移除递归嵌套 view,仅仅只允许 chart - view 两层。\n // 这个 API 理论上用户量不多,所以暂时不发大版本,所以先暂时打一个 warning。\n if (this.parent && this.parent.parent) {\n // 存在 3 层 结构了\n console.warn('The view nesting recursive feature will be removed at G2 V4.1. Please avoid to use it.');\n }\n\n // 子 view 共享 options 配置数据\n const sharedOptions = {\n data: this.options.data,\n scales: clone(this.options.scales),\n axes: clone(this.options.axes),\n coordinate: clone(this.coordinateController.getOption()),\n tooltip: clone(this.options.tooltip),\n legends: clone(this.options.legends),\n animate: this.options.animate,\n visible: this.visible,\n };\n\n const v = new View({\n parent: this,\n canvas: this.canvas,\n // 子 view 共用三层 group\n backgroundGroup: this.backgroundGroup.addGroup({ zIndex: GROUP_Z_INDEX.BG }),\n middleGroup: this.middleGroup.addGroup({ zIndex: GROUP_Z_INDEX.MID }),\n foregroundGroup: this.foregroundGroup.addGroup({ zIndex: GROUP_Z_INDEX.FORE }),\n theme: this.themeObject,\n padding: this.padding,\n ...cfg,\n options: {\n ...sharedOptions,\n ...get(cfg, 'options', {}),\n },\n });\n\n this.views.push(v);\n\n return v;\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Replaced by {@link #createView()}\n */\n public view(cfg?: Partial) {\n console.warn('This method will be removed at G2 V4.1. Please use chart.createView() instead.');\n return this.createView(cfg);\n }\n\n /**\n * 删除一个子 view\n * @param view\n * @return removedView\n */\n public removeView(view: View): View {\n const removedView = remove(this.views, (v: View) => v === view)[0];\n\n if (removedView) {\n removedView.destroy();\n }\n\n return removedView;\n }\n /* end View 管理相关的 API */\n\n // 一些 get 方法\n\n /**\n * 获取当前坐标系实例。\n * @returns [[Coordinate]]\n */\n public getCoordinate() {\n return this.coordinateInstance;\n }\n\n /**\n * 获取当前 view 的主题配置。\n * @returns themeObject\n */\n public getTheme(): LooseObject {\n return this.themeObject;\n }\n\n /**\n * 获得 x 轴字段的 scale 实例。\n * @returns view 中 Geometry 对于的 x scale\n */\n public getXScale(): Scale {\n // 拿第一个 Geometry 的 X scale\n // 隐藏逻辑:一个 view 中的 Geometry 必须 x 字段一致\n const g = this.geometries[0];\n return g ? g.getXScale() : null;\n }\n\n /**\n * 获取 y 轴字段的 scales 实例。\n * @returns view 中 Geometry 对于的 y scale 数组\n */\n public getYScales(): Scale[] {\n // 拿到所有的 Geometry 的 Y scale,然后去重\n const tmpMap = {};\n const yScales = [];\n this.geometries.forEach((g: Geometry) => {\n const yScale = g.getYScale();\n const field = yScale.field;\n if (!tmpMap[field]) {\n tmpMap[field] = true;\n yScales.push(yScale);\n }\n });\n return yScales;\n }\n\n /**\n * 获取 x 轴或者 y 轴对应的所有 scale 实例。\n * @param dimType x | y\n * @returns x 轴或者 y 轴对应的所有 scale 实例。\n */\n public getScalesByDim(dimType: 'x' | 'y'): Record {\n const geometries = this.geometries;\n const scales = {};\n\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geometry = geometries[i];\n const scale = dimType === 'x' ? geometry.getXScale() : geometry.getYScale();\n if (scale && !scales[scale.field]) {\n scales[scale.field] = scale;\n }\n }\n\n return scales;\n }\n\n /**\n * 根据字段名去获取 scale 实例。\n * @param field 数据字段名称\n * @param key id\n */\n public getScale(field: string, key?: string): Scale {\n const defaultKey = key ? key : this.getScaleKey(field);\n // 调用根节点 view 的方法获取\n return this.getRootView().scalePool.getScale(defaultKey);\n }\n\n /**\n * @deprecated\n * This method will be removed at G2 V4.1. Please use `getScale`.\n */\n public getScaleByField(field: string, key?: string): Scale {\n return this.getScale(field, key);\n }\n\n /**\n * 返回所有配置信息。\n * @returns 所有的 view API 配置。\n */\n public getOptions(): Options {\n return this.options;\n }\n\n /**\n * 获取 view 的数据(过滤后的数据)。\n * @returns 处理过滤器之后的数据。\n */\n public getData() {\n return this.filteredData;\n }\n\n /**\n * 获取原始数据\n * @returns 传入 G2 的原始数据\n */\n public getOriginalData() {\n return this.options.data;\n }\n\n /**\n * 获取布局后的边距 padding\n * @returns\n */\n public getPadding(): Padding {\n return this.autoPadding.getPadding();\n }\n\n /**\n * 获取当前 view 有的 geometries\n * @returns\n */\n public getGeometries() {\n return this.geometries;\n }\n\n /**\n * 获取 view 中的所有 geome\n */\n public getElements(): Element[] {\n return reduce(\n this.geometries,\n (elements: Element[], geometry: Geometry) => {\n return elements.concat(geometry.getElements());\n },\n []\n );\n }\n\n /**\n * 根据一定的规则查找 Geometry 的 Elements。\n *\n * ```typescript\n * getElementsBy((element) => {\n * const data = element.getData();\n *\n * return data.a === 'a';\n * });\n * ```\n *\n * @param condition 定义查找规则的回调函数。\n * @returns\n */\n public getElementsBy(condition: (element: Element) => boolean): Element[] {\n return this.getElements().filter((el) => condition(el));\n }\n\n /**\n * 获得绘制的层级 group。\n * @param layer 层级名称。\n * @returns 对应层级的 Group。\n */\n public getLayer(layer: LAYER): IGroup {\n return layer === LAYER.BG\n ? this.backgroundGroup\n : layer === LAYER.MID\n ? this.middleGroup\n : layer === LAYER.FORE\n ? this.foregroundGroup\n : this.foregroundGroup;\n }\n\n /**\n * 对外暴露方法,判断一个点是否在绘图区域(即坐标系范围)内部。\n * @param point 坐标点\n */\n public isPointInPlot(point: Point): boolean {\n return isPointInCoordinate(this.getCoordinate(), point);\n }\n\n /**\n * 获得所有的 legend 对应的 attribute 实例。\n * @returns 维度字段的 Attribute 数组\n */\n public getLegendAttributes(): Attribute[] {\n return flatten(this.geometries.map((g: Geometry) => g.getGroupAttributes())) as unknown as Attribute[];\n }\n\n /**\n * 获取所有的分组字段的 scale 实例。\n * @returns 获得分组字段的 scale 实例数组。\n */\n public getGroupScales(): Scale[] {\n // 拿到所有的 Geometry 的 分组字段 scale,然后打平去重\n const scales = this.geometries.map((g: Geometry) => g.getGroupScales());\n return uniq(flatten(scales));\n }\n\n /**\n * 获取 G.Canvas 实例。\n * @returns G.Canvas 画布实例。\n */\n public getCanvas(): ICanvas {\n return (this.getRootView() as unknown as Chart).canvas;\n }\n\n /**\n * 获得根节点 view。\n */\n public getRootView(): View {\n let v = this as View;\n\n while (true) {\n if (v.parent) {\n v = v.parent;\n continue;\n }\n break;\n }\n return v;\n }\n\n /**\n * 获取该数据在可视化后,对应的画布坐标点。\n * @param data 原始数据记录\n * @returns 对应的画布坐标点\n */\n public getXY(data: Datum): Point {\n const coordinate = this.getCoordinate();\n const xScales = this.getScalesByDim('x');\n const yScales = this.getScalesByDim('y');\n let x;\n let y;\n\n each(data, (value, key) => {\n if (xScales[key]) {\n x = xScales[key].scale(value);\n }\n if (yScales[key]) {\n y = yScales[key].scale(value);\n }\n });\n\n if (!isNil(x) && !isNil(y)) {\n return coordinate.convert({ x, y });\n }\n }\n\n public getController(name: 'tooltip'): Tooltip;\n public getController(name: 'axis'): Axis;\n public getController(name: 'legend'): Legend;\n public getController(name: 'scrollbar'): Scrollbar;\n public getController(name: 'slider'): Slider;\n public getController(name: 'annotation'): Annotation;\n public getController(name: 'gestucre'): Gesture;\n public getController(name: string): Controller;\n /**\n * 获取 name 对应的 controller 实例\n * @param name\n */\n public getController(name: string): Controller {\n return find(this.controllers, (c: Controller) => c.name === name);\n }\n\n /**\n * 显示 point 坐标点对应的 tooltip。\n * @param point 画布坐标点\n * @returns View\n */\n public showTooltip(point: Point): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.showTooltip(point);\n }\n return this;\n }\n\n /**\n * 隐藏 tooltip。\n * @returns View\n */\n public hideTooltip(): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.hideTooltip();\n }\n return this;\n }\n\n /**\n * 将 tooltip 锁定到当前位置不能移动。\n * @returns View\n */\n public lockTooltip(): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.lockTooltip();\n }\n return this;\n }\n\n /**\n * 将 tooltip 锁定解除。\n * @returns View\n */\n public unlockTooltip(): View {\n const tooltip = this.getController('tooltip');\n if (tooltip) {\n tooltip.unlockTooltip();\n }\n return this;\n }\n\n /**\n * 是否锁定 tooltip。\n * @returns 是否锁定\n */\n public isTooltipLocked() {\n const tooltip = this.getController('tooltip');\n return tooltip && tooltip.isTooltipLocked();\n }\n\n /**\n * 获取当前 point 对应的 tooltip 数据项。\n * @param point 坐标点\n * @returns tooltip 数据项\n */\n public getTooltipItems(point: Point) {\n const tooltip = this.getController('tooltip');\n\n return tooltip ? tooltip.getTooltipItems(point) : [];\n }\n\n /**\n * 获取逼近的点的数据集合\n * @param point 当前坐标点\n * @returns 数据\n */\n public getSnapRecords(point: Point) {\n const geometries = this.geometries;\n let rst = [];\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geom = geometries[i];\n const dataArray = geom.dataArray;\n geom.sort(dataArray); // 先进行排序,便于 tooltip 查找\n let record;\n for (let j = 0, dataLen = dataArray.length; j < dataLen; j++) {\n const data = dataArray[j];\n record = findDataByPoint(point, data, geom);\n if (record) {\n rst.push(record);\n }\n }\n }\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n const snapRecords = view.getSnapRecords(point);\n rst = rst.concat(snapRecords);\n }\n\n return rst;\n }\n\n /**\n * 获取所有的 pure component 组件,用于布局。\n */\n public getComponents(): ComponentOption[] {\n let components = [];\n const controllers = this.controllers;\n for (let i = 0, len = controllers.length; i < len; i++) {\n const controller = controllers[i];\n components = components.concat(controller.getComponents());\n }\n\n return components;\n }\n\n /**\n * 将 data 数据进行过滤。\n * @param data\n * @returns 过滤之后的数据\n */\n public filterData(data: Data): Data {\n const { filters } = this.options;\n // 不存在 filters,则不需要进行数据过滤\n if (size(filters) === 0) {\n return data;\n }\n\n // 存在过滤器,则逐个执行过滤,过滤器之间是 与 的关系\n return filter(data, (datum: Datum, idx: number) => {\n // 所有的 filter 字段\n const fields = Object.keys(filters);\n\n // 所有的条件都通过,才算通过\n return fields.every((field: string) => {\n const condition = filters[field];\n\n // condition 返回 true,则保留\n return condition(datum[field], datum, idx);\n });\n });\n }\n\n /**\n * 对某一个字段进行过滤\n * @param field\n * @param data\n */\n public filterFieldData(field: string, data: Data): Data {\n const { filters } = this.options;\n const condition = get(filters, field);\n\n if (isUndefined(condition)) {\n return data;\n }\n return data.filter((datum: Datum, idx: number) => condition(datum[field], datum, idx));\n }\n\n /**\n * 调整 coordinate 的坐标范围。\n */\n public adjustCoordinate() {\n const { start: curStart, end: curEnd } = this.getCoordinate();\n const start = this.coordinateBBox.bl;\n const end = this.coordinateBBox.tr;\n\n // 在 defaultLayoutFn 中只会在 coordinateBBox 发生变化的时候会调用 adjustCoordinate(),所以不用担心被置位\n if (isEqual(curStart, start) && isEqual(curEnd, end)) {\n this.isCoordinateChanged = false;\n // 如果大小没有变化则不更新\n return;\n }\n this.isCoordinateChanged = true;\n this.coordinateInstance = this.coordinateController.adjust(start, end);\n }\n\n protected paint(isUpdate: boolean) {\n this.renderDataRecursive(isUpdate);\n\n // 处理 sync scale 的逻辑\n this.syncScale();\n\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_PAINT);\n\n // 初始化图形、组件位置,计算 padding\n this.renderPaddingRecursive(isUpdate);\n // 布局图形、组件\n this.renderLayoutRecursive(isUpdate);\n // 背景色 shape\n this.renderBackgroundStyleShape();\n // 最终的绘制 render\n this.renderPaintRecursive(isUpdate);\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_PAINT);\n\n this.isDataChanged = false; // 渲染完毕复位\n }\n\n /**\n * 渲染背景样式的 shape。\n * 放到 view 中创建的原因是让使用 view 绘制图形的时候,也能够处理背景色\n */\n private renderBackgroundStyleShape() {\n // 只有根节点才处理\n if (this.parent) {\n return;\n }\n const background = get(this.themeObject, 'background');\n // 配置了背景色\n if (background) {\n // 1. 不存在则创建\n if (!this.backgroundStyleRectShape) {\n this.backgroundStyleRectShape = this.backgroundGroup.addShape('rect', {\n attrs: {},\n zIndex: -1,\n // 背景色 shape 不设置事件捕获\n capture: false,\n });\n this.backgroundStyleRectShape.toBack();\n }\n\n // 2. 有了 shape 之后设置背景,位置(更新的时候)\n const { x, y, width, height } = this.viewBBox;\n this.backgroundStyleRectShape.attr({\n fill: background,\n x,\n y,\n width,\n height,\n });\n } else {\n // 没有配置背景色\n if (this.backgroundStyleRectShape) {\n this.backgroundStyleRectShape.remove(true);\n this.backgroundStyleRectShape = undefined;\n }\n }\n }\n\n /**\n * 递归计算每个 view 的 padding 值,coordinateBBox 和 coordinateInstance\n * @param isUpdate\n */\n protected renderPaddingRecursive(isUpdate: boolean) {\n // 1. 子 view 大小相对 coordinateBBox,changeSize 的时候需要重新计算\n this.calculateViewBBox();\n // 2. 更新 coordinate\n this.adjustCoordinate();\n // 3. 初始化组件 component\n this.initComponents(isUpdate);\n // 4. 布局计算每隔 view 的 padding 值\n // 4.1. 自动加 auto padding -> absolute padding,并且增加 appendPadding\n this.autoPadding = calculatePadding(this).shrink(parsePadding(this.appendPadding));\n // 4.2. 计算出新的 coordinateBBox,更新 Coordinate\n // 这里必须保留,原因是后面子 view 的 viewBBox 或根据 parent 的 coordinateBBox\n this.coordinateBBox = this.viewBBox.shrink(this.autoPadding.getPadding());\n this.adjustCoordinate();\n\n // 刷新 tooltip (tooltip crosshairs 依赖 coordinate 位置)\n const tooltipController = this.controllers.find((c) => c.name === 'tooltip');\n tooltipController.update();\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderPaddingRecursive(isUpdate);\n }\n }\n\n /**\n * 递归处理 view 的布局,最终是计算各个 view 的 coordinateBBox 和 coordinateInstance\n * @param isUpdate\n */\n protected renderLayoutRecursive(isUpdate: boolean) {\n // 1. 同步子 view padding\n // 根据配置获取 padding\n const syncViewPaddingFn =\n this.syncViewPadding === true\n ? defaultSyncViewPadding\n : isFunction(this.syncViewPadding)\n ? this.syncViewPadding\n : undefined;\n\n if (syncViewPaddingFn) {\n syncViewPaddingFn(this, this.views, PaddingCal);\n // 同步 padding 之后,更新 coordinate\n this.views.forEach((v: View) => {\n v.coordinateBBox = v.viewBBox.shrink(v.autoPadding.getPadding());\n v.adjustCoordinate();\n });\n }\n\n // 3. 将 view 中的组件按照 view padding 移动到对应的位置\n this.doLayout();\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderLayoutRecursive(isUpdate);\n }\n }\n\n /**\n * 最终递归绘制组件和图形\n * @param isUpdate\n */\n protected renderPaintRecursive(isUpdate: boolean) {\n const middleGroup = this.middleGroup;\n if (this.limitInPlot) {\n const { type, attrs } = getCoordinateClipCfg(this.coordinateInstance);\n middleGroup.setClip({\n type,\n attrs,\n });\n } else {\n // 清除已有的 clip\n middleGroup.setClip(undefined);\n }\n\n // 1. 渲染几何标记\n this.paintGeometries(isUpdate);\n // 2. 绘制组件\n this.renderComponents(isUpdate);\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderPaintRecursive(isUpdate);\n }\n }\n\n // end Get 方法\n\n /**\n * 创建 scale,递归到顶层 view 去创建和缓存 scale\n * @param field\n * @param data\n * @param scaleDef\n * @param key\n */\n protected createScale(field: string, data: Data, scaleDef: ScaleOption, key: string): Scale {\n // 1. 合并 field 对应的 scaleDef,合并原则是底层覆盖顶层(就近原则)\n const currentScaleDef = get(this.options.scales, [field]);\n const mergedScaleDef = { ...currentScaleDef, ...scaleDef };\n\n // 2. 是否存在父 view,在则递归,否则创建\n if (this.parent) {\n return this.parent.createScale(field, data, mergedScaleDef, key);\n }\n\n // 3. 在根节点 view 通过 scalePool 创建\n return this.scalePool.createScale(field, data, mergedScaleDef, key);\n }\n\n /**\n * 递归渲染中的数据处理\n * @param isUpdate\n */\n private renderDataRecursive(isUpdate: boolean) {\n // 1. 处理数据\n this.doFilterData();\n // 2. 创建实例\n this.createCoordinate();\n // 3. 初始化 Geometry\n this.initGeometries(isUpdate);\n // 4. 处理分面逻辑,最终都是生成子 view 和 geometry\n this.renderFacet(isUpdate);\n\n // 同样递归处理子 views\n const views = this.views;\n for (let i = 0, len = views.length; i < len; i++) {\n const view = views[i];\n view.renderDataRecursive(isUpdate);\n }\n }\n\n /**\n * 计算 region,计算实际的像素范围坐标\n * @private\n */\n private calculateViewBBox() {\n let x;\n let y;\n let width;\n let height;\n\n if (this.parent) {\n const bbox = this.parent.coordinateBBox;\n // 存在 parent, 那么就是通过父容器大小计算\n x = bbox.x;\n y = bbox.y;\n width = bbox.width;\n height = bbox.height;\n } else {\n // 顶层容器,从 canvas 中取值 宽高\n x = 0;\n y = 0;\n width = this.canvas.get('width');\n height = this.canvas.get('height');\n }\n\n const { start, end } = this.region;\n\n // 根据 region 计算当前 view 的 bbox 大小。\n const viewBBox = new BBox(\n x + width * start.x,\n y + height * start.y,\n width * (end.x - start.x),\n height * (end.y - start.y)\n );\n\n if (!this.viewBBox || !this.viewBBox.isEqual(viewBBox)) {\n // viewBBox 发生变化的时候进行更新\n this.viewBBox = new BBox(\n x + width * start.x,\n y + height * start.y,\n width * (end.x - start.x),\n height * (end.y - start.y)\n );\n }\n\n // 初始的 coordinate bbox 大小\n this.coordinateBBox = this.viewBBox;\n }\n\n /**\n * 初始化事件机制:G 4.0 底层内置支持 name:event 的机制,那么只要所有组件都有自己的 name 即可。\n *\n * G2 的事件只是获取事件委托,然后在 view 嵌套结构中,形成事件冒泡机制。\n * 当前 view 只委托自己 view 中的 Component 和 Geometry 事件,并向上冒泡\n * @private\n */\n private initEvents() {\n // 三层 group 中的 shape 事件都会通过 G 冒泡上来的\n this.foregroundGroup.on('*', this.onDelegateEvents);\n this.middleGroup.on('*', this.onDelegateEvents);\n this.backgroundGroup.on('*', this.onDelegateEvents);\n\n this.canvas.on('*', this.onCanvasEvent);\n }\n\n private onCanvasEvent = (evt: GEvent): void => {\n const name = evt.name;\n if (!name.includes(':')) {\n // 非委托事件\n const e = this.createViewEvent(evt);\n // 处理 plot 事件\n this.doPlotEvent(e);\n this.emit(name, e);\n }\n };\n\n /**\n * 初始化插件\n */\n private initComponentController() {\n const usedControllers = this.usedControllers;\n for (let i = 0, len = usedControllers.length; i < len; i++) {\n const controllerName = usedControllers[i];\n const Ctor = getComponentController(controllerName);\n if (Ctor) {\n this.controllers.push(new Ctor(this));\n }\n }\n }\n\n private createViewEvent(evt: GEvent) {\n const { shape, name } = evt;\n\n const data = shape ? shape.get('origin') : null;\n // 事件在 view 嵌套中冒泡(暂不提供阻止冒泡的机制)\n const e = new Event(this, evt, data);\n e.type = name;\n return e;\n }\n /**\n * 触发事件之后\n * @param evt\n */\n private onDelegateEvents = (evt: GEvent): void => {\n // 阻止继续冒泡,防止重复事件触发\n // evt.preventDefault();\n const { name } = evt;\n if (!name.includes(':')) {\n return;\n }\n // 事件在 view 嵌套中冒泡(暂不提供阻止冒泡的机制)\n const e = this.createViewEvent(evt);\n\n // 包含有基本事件、组合事件\n this.emit(name, e);\n // const currentTarget = evt.currentTarget as IShape;\n // const inheritNames = currentTarget.get('inheritNames');\n // if (evt.delegateObject || inheritNames) {\n // const events = this.getEvents();\n // each(inheritNames, (subName) => {\n // const eventName = `${subName}:${type}`;\n // if (events[eventName]) {\n // this.emit(eventName, e);\n // }\n // });\n // }\n };\n\n /**\n * 处理 PLOT_EVENTS\n * plot event 需要处理所有的基础事件,并判断是否在画布中,然后再决定是否要 emit。\n * 对于 mouseenter、mouseleave 比较特殊,需要做一下数学比较。\n * @param e\n */\n private doPlotEvent(e: Event) {\n const { type, x, y } = e;\n\n const point = { x, y };\n\n const ALL_EVENTS = [\n 'mousedown',\n 'mouseup',\n 'mousemove',\n 'mouseleave',\n 'mousewheel',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'click',\n 'dblclick',\n 'contextmenu',\n ];\n\n if (ALL_EVENTS.includes(type)) {\n const currentInPlot = this.isPointInPlot(point);\n const newEvent = e.clone();\n\n if (currentInPlot) {\n const TYPE = `plot:${type}`; // 组合 plot 事件\n newEvent.type = TYPE;\n this.emit(TYPE, newEvent);\n if (type === 'mouseleave' || type === 'touchend') {\n // 在plot 内部却离开画布\n this.isPreMouseInPlot = false;\n }\n }\n\n // 对于 mouseenter, mouseleave 的计算处理\n if (type === 'mousemove' || type === 'touchmove') {\n if (this.isPreMouseInPlot && !currentInPlot) {\n if (type === 'mousemove') {\n newEvent.type = PLOT_EVENTS.MOUSE_LEAVE;\n this.emit(PLOT_EVENTS.MOUSE_LEAVE, newEvent);\n }\n newEvent.type = PLOT_EVENTS.LEAVE;\n this.emit(PLOT_EVENTS.LEAVE, newEvent);\n } else if (!this.isPreMouseInPlot && currentInPlot) {\n if (type === 'mousemove') {\n newEvent.type = PLOT_EVENTS.MOUSE_ENTER;\n this.emit(PLOT_EVENTS.MOUSE_ENTER, newEvent);\n }\n newEvent.type = PLOT_EVENTS.ENTER;\n this.emit(PLOT_EVENTS.ENTER, newEvent);\n }\n // 赋新的状态值\n this.isPreMouseInPlot = currentInPlot;\n } else if (type === 'mouseleave' || type === 'touchend') {\n // 可能不在 currentInPlot 中\n if (this.isPreMouseInPlot) {\n if (type === 'mouseleave') {\n newEvent.type = PLOT_EVENTS.MOUSE_LEAVE;\n this.emit(PLOT_EVENTS.MOUSE_LEAVE, newEvent);\n }\n newEvent.type = PLOT_EVENTS.LEAVE;\n this.emit(PLOT_EVENTS.LEAVE, newEvent);\n\n this.isPreMouseInPlot = false;\n }\n }\n }\n }\n\n // view 生命周期 —— 渲染流程\n\n /**\n * 处理筛选器,筛选数据\n * @private\n */\n private doFilterData() {\n const { data } = this.options;\n this.filteredData = this.filterData(data);\n }\n\n /**\n * 初始化 Geometries\n * @private\n */\n private initGeometries(isUpdate: boolean) {\n // 初始化图形的之前,先创建 / 更新 scales\n this.createOrUpdateScales();\n // 实例化 Geometry,然后 view 将所有的 scale 管理起来\n const coordinate = this.getCoordinate();\n const scaleDefs = get(this.options, 'scales', {});\n const geometries = this.geometries;\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geometry = geometries[i];\n // 保持 scales 引用不要变化\n geometry.scales = this.getGeometryScales();\n const cfg = {\n coordinate, // 使用 coordinate 引用,可以保持 coordinate 的同步更新\n scaleDefs,\n data: this.filteredData,\n theme: this.themeObject,\n isDataChanged: this.isDataChanged,\n isCoordinateChanged: this.isCoordinateChanged,\n };\n\n if (isUpdate) {\n // 数据发生更新\n geometry.update(cfg);\n } else {\n geometry.init(cfg);\n }\n }\n\n // Geometry 初始化之后,生成了 scale,然后进行调整 scale 配置\n this.adjustScales();\n }\n\n /**\n * 根据 Geometry 的所有字段创建 scales\n * 如果存在,则更新,不存在则创建\n */\n private createOrUpdateScales() {\n const fields = this.getScaleFields();\n const groupedFields = this.getGroupedFields();\n\n const { data, scales = {} } = this.getOptions();\n const filteredData = this.filteredData;\n\n for (let i = 0, len = fields.length; i < len; i++) {\n const field = fields[i];\n const scaleDef = scales[field];\n\n // 调用方法,递归去创建\n const key = this.getScaleKey(field);\n this.createScale(\n field,\n // 分组字段的 scale 使用未过滤的数据创建\n groupedFields.includes(field) ? data : filteredData,\n scaleDef,\n key\n );\n\n // 缓存从当前 view 创建的 scale key\n this.createdScaleKeys.set(key, true);\n }\n }\n\n /**\n * 处理 scale 同步逻辑\n */\n private syncScale() {\n // 最终调用 root view 的\n this.getRootView().scalePool.sync(this.getCoordinate(), this.theme);\n }\n\n /**\n * 获得 Geometry 中的 scale 对象\n */\n private getGeometryScales(): Record {\n const fields = this.getScaleFields();\n\n const scales = {};\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i];\n scales[field] = this.getScaleByField(field);\n }\n\n return scales;\n }\n\n private getScaleFields() {\n const fields = [];\n const tmpMap = new Map();\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n const geometry = geometries[i];\n const geometryScales = geometry.getScaleFields();\n uniq(geometryScales, fields, tmpMap);\n }\n return fields;\n }\n\n private getGroupedFields() {\n const fields = [];\n const tmpMap = new Map();\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n const geometry = geometries[i];\n const groupFields = geometry.getGroupFields();\n uniq(groupFields, fields, tmpMap);\n }\n return fields;\n }\n\n /**\n * 调整 scale 配置\n * @private\n */\n private adjustScales() {\n // 调整目前包括:\n // 分类 scale,调整 range 范围\n this.adjustCategoryScaleRange();\n }\n\n /**\n * 调整分类 scale 的 range,防止超出坐标系外面\n * @private\n */\n private adjustCategoryScaleRange() {\n const xyScales = [this.getXScale(), ...this.getYScales()].filter((e) => !!e);\n const coordinate = this.getCoordinate();\n const scaleOptions = this.options.scales;\n\n each(xyScales, (scale: Scale) => {\n const { field, values, isCategory, isIdentity } = scale;\n\n // 分类或者 identity 的 scale 才进行处理\n if (isCategory || isIdentity) {\n // 存在 value 值,且用户没有配置 range 配置\n if (values && !get(scaleOptions, [field, 'range'])) {\n // 更新 range\n scale.range = getDefaultCategoryScaleRange(scale, coordinate, this.theme);\n }\n }\n });\n }\n\n /**\n * 根据 options 配置、Geometry 字段配置,自动生成 components\n * @param isUpdate 是否是更新\n * @private\n */\n private initComponents(isUpdate: boolean) {\n // 先全部清空,然后 render\n const controllers = this.controllers;\n for (let i = 0; i < controllers.length; i++) {\n const controller = controllers[i];\n // 更新则走更新逻辑;否则清空载重绘\n if (isUpdate) {\n controller.update();\n } else {\n controller.clear();\n controller.render();\n }\n }\n }\n\n private doLayout() {\n this.layoutFunc(this);\n }\n\n /**\n * 创建坐标系\n * @private\n */\n private createCoordinate() {\n const start = this.coordinateBBox.bl;\n const end = this.coordinateBBox.tr;\n this.coordinateInstance = this.coordinateController.create(start, end);\n }\n\n /**\n * 根据 options 配置自动渲染 geometry\n * @private\n */\n private paintGeometries(isUpdate: boolean) {\n const doAnimation = this.options.animate;\n // geometry 的 paint 阶段\n const coordinate = this.getCoordinate();\n const canvasRegion = {\n x: this.viewBBox.x,\n y: this.viewBBox.y,\n minX: this.viewBBox.minX,\n minY: this.viewBBox.minY,\n maxX: this.viewBBox.maxX,\n maxY: this.viewBBox.maxY,\n width: this.viewBBox.width,\n height: this.viewBBox.height,\n };\n const geometries = this.geometries;\n for (let i = 0; i < geometries.length; i++) {\n const geometry = geometries[i];\n geometry.coordinate = coordinate;\n geometry.canvasRegion = canvasRegion;\n if (!doAnimation) {\n // 如果 view 不执行动画,那么 view 下所有的 geometry 都不执行动画\n geometry.animate(false);\n }\n geometry.paint(isUpdate);\n }\n }\n\n /**\n * 最后的绘制组件\n * @param isUpdate\n */\n private renderComponents(isUpdate: boolean) {\n const components = this.getComponents();\n // 先全部清空,然后 render\n for (let i = 0; i < components.length; i++) {\n const co = components[i];\n (co.component as GroupComponent).render();\n }\n }\n\n /**\n * 渲染分面,会在其中进行数据分面,然后进行子 view 创建\n * @param isUpdate\n */\n private renderFacet(isUpdate: boolean) {\n if (this.facetInstance) {\n if (isUpdate) {\n this.facetInstance.update();\n } else {\n this.facetInstance.clear();\n // 计算分面数据\n this.facetInstance.init();\n // 渲染组件和 views\n this.facetInstance.render();\n }\n }\n }\n\n private initOptions() {\n const {\n geometries = [],\n interactions = [],\n views = [],\n annotations = [],\n coordinate,\n events,\n facets,\n } = this.options;\n\n // 设置坐标系\n if (this.coordinateController) {\n // 更新 coordinate controller\n coordinate && this.coordinateController.update(coordinate);\n } else {\n // 创建 coordinate controller\n this.coordinateController = new CoordinateController(coordinate);\n }\n\n // 创建 geometry 实例\n for (let i = 0; i < geometries.length; i++) {\n const geometryOption = geometries[i];\n this.createGeometry(geometryOption);\n }\n\n // 创建 interactions 实例\n for (let j = 0; j < interactions.length; j++) {\n const interactionOption = interactions[j];\n const { type, cfg } = interactionOption;\n this.interaction(type, cfg);\n }\n\n // 创建 view 实例\n for (let k = 0; k < views.length; k++) {\n const viewOption = views[k];\n this.createView(viewOption);\n }\n\n // 设置 annotation\n const annotationComponent = this.getController('annotation');\n for (let l = 0; l < annotations.length; l++) {\n const annotationOption = annotations[l];\n annotationComponent.annotation(annotationOption);\n }\n\n // 设置 events\n if (events) {\n each(events, (eventCallback, eventName) => {\n this.on(eventName, eventCallback);\n });\n }\n\n if (facets) {\n each(facets, (facet) => {\n const { type, ...rest } = facet;\n\n this.facet(type, rest);\n });\n }\n }\n\n private createGeometry(geometryOption: GeometryOption) {\n const { type, cfg = {} } = geometryOption;\n if (this[type]) {\n const geometry = this[type](cfg);\n each(geometryOption, (v, k) => {\n if (isFunction(geometry[k])) {\n geometry[k](v);\n }\n });\n }\n }\n\n /**\n * scale key 的创建方式\n * @param field\n */\n private getScaleKey(field: string): string {\n return `${this.id}-${field}`;\n }\n}\n\n/**\n * 注册 geometry 组件\n * @param name\n * @param Ctor\n * @returns Geometry\n */\nexport function registerGeometry(name: string, Ctor: any) {\n // 语法糖,在 view API 上增加原型方法\n View.prototype[name.toLowerCase()] = function (cfg: any = {}) {\n const props = {\n /** 图形容器 */\n container: this.middleGroup.addGroup(),\n labelsContainer: this.foregroundGroup.addGroup(),\n ...cfg,\n };\n\n const geometry = new Ctor(props);\n this.geometries.push(geometry);\n\n return geometry;\n };\n}\n\nexport default View;\n","import { debounce, each, isString } from '@antv/util';\nimport { ChartCfg } from '../interface';\nimport { GROUP_Z_INDEX, VIEW_LIFE_CIRCLE } from '../constant';\nimport { getEngine } from '../engine';\nimport { createDom, getChartSize, removeDom, modifyCSS } from '../util/dom';\nimport View from './view';\nimport { AriaOption } from '../interface';\n\n/**\n * Chart 类,是使用 G2 进行绘图的入口。\n */\nexport default class Chart extends View {\n /** Chart 的 DOM 容器 */\n public ele: HTMLElement;\n\n /** 图表宽度 */\n public width: number;\n /** 图表高度 */\n public height: number;\n /** 是否开启局部刷新 */\n public localRefresh: boolean;\n /** 是否自适应 DOM 容器宽高,默认为 false,需要用户手动指定宽高 */\n public autoFit: boolean;\n /** 图表渲染引擎 */\n public renderer: 'canvas' | 'svg';\n\n private wrapperElement: HTMLElement;\n\n // @ts-ignore\n constructor(props: ChartCfg) {\n const {\n container,\n width,\n height,\n autoFit = false,\n padding,\n appendPadding,\n renderer = 'canvas',\n pixelRatio,\n localRefresh = true,\n visible = true,\n supportCSSTransform = false,\n defaultInteractions = ['tooltip', 'legend-filter', 'legend-active', 'continuous-filter', 'ellipsis-text', 'axis-description'],\n options,\n limitInPlot,\n theme,\n syncViewPadding,\n } = props;\n\n const ele: HTMLElement = isString(container) ? document.getElementById(container) : container;\n\n // 生成内部正式绘制的 div 元素\n const wrapperElement = createDom('
    ');\n ele.appendChild(wrapperElement);\n\n // if autoFit, use the container size, to avoid the graph render twice.\n const size = getChartSize(ele, autoFit, width, height);\n\n const G = getEngine(renderer);\n\n const canvas = new G.Canvas({\n container: wrapperElement,\n pixelRatio,\n localRefresh,\n supportCSSTransform,\n ...size,\n });\n\n // 调用 view 的创建\n super({\n parent: null,\n canvas,\n // create 3 group layers for views.\n backgroundGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.BG }),\n middleGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.MID }),\n foregroundGroup: canvas.addGroup({ zIndex: GROUP_Z_INDEX.FORE }),\n padding,\n appendPadding,\n visible,\n options,\n limitInPlot,\n theme,\n syncViewPadding,\n });\n\n this.ele = ele;\n this.canvas = canvas;\n this.width = size.width;\n this.height = size.height;\n this.autoFit = autoFit;\n this.localRefresh = localRefresh;\n this.renderer = renderer;\n this.wrapperElement = wrapperElement;\n\n // 自适应大小\n this.updateCanvasStyle();\n this.bindAutoFit();\n this.initDefaultInteractions(defaultInteractions);\n }\n\n private initDefaultInteractions(interactions) {\n each(interactions, (interaction) => {\n this.interaction(interaction);\n });\n }\n\n /**\n * 设置 WAI-ARIA 无障碍标签。如何根据图形语法自动生成 arial 内容?\n * @param ariaOption\n */\n public aria(ariaOption: AriaOption) {\n const ATTR = 'aria-label';\n if (ariaOption === false) {\n this.ele.removeAttribute(ATTR);\n } else {\n this.ele.setAttribute(ATTR, ariaOption.label);\n }\n }\n\n /**\n * 改变图表大小,同时重新渲染。\n * @param width 图表宽度\n * @param height 图表高度\n * @returns\n */\n public changeSize(width: number, height: number) {\n // 如果宽高一致,那么 changeSize 不执行任何操作\n if (this.width === width && this.height === height) {\n return this;\n }\n\n this.emit(VIEW_LIFE_CIRCLE.BEFORE_CHANGE_SIZE);\n\n this.width = width;\n this.height = height;\n this.canvas.changeSize(width, height);\n\n // 重新渲染\n this.render(true);\n\n this.emit(VIEW_LIFE_CIRCLE.AFTER_CHANGE_SIZE);\n\n return this;\n }\n\n /**\n * 清空图表,同时清除掉 aria 配置\n */\n public clear() {\n super.clear();\n\n this.aria(false);\n }\n\n /**\n * 销毁图表,同时解绑事件,销毁创建的 G.Canvas 实例。\n * @returns void\n */\n public destroy() {\n super.destroy();\n\n this.unbindAutoFit();\n this.canvas.destroy();\n\n removeDom(this.wrapperElement);\n this.wrapperElement = null;\n }\n\n /**\n * 显示或隐藏图表\n * @param visible 是否可见,true 表示显示,false 表示隐藏\n * @returns\n */\n public changeVisible(visible: boolean) {\n super.changeVisible(visible); // 需要更新 visible 变量\n this.wrapperElement.style.display = visible ? '' : 'none';\n\n return this;\n }\n\n /**\n * 自动根据容器大小 resize 画布\n */\n public forceFit() {\n // skip if already destroyed\n if (!this.destroyed) {\n // 注意第二参数用 true,意思是即时 autoFit = false,forceFit() 调用之后一样是适配容器\n const { width, height } = getChartSize(this.ele, true, this.width, this.height);\n this.changeSize(width, height);\n }\n }\n\n private updateCanvasStyle() {\n modifyCSS(this.canvas.get('el'), {\n display: 'inline-block',\n verticalAlign: 'middle',\n });\n }\n\n private bindAutoFit() {\n if (this.autoFit) {\n window.addEventListener('resize', this.onResize);\n }\n }\n\n private unbindAutoFit() {\n if (this.autoFit) {\n window.removeEventListener('resize', this.onResize);\n }\n }\n\n /**\n * when container size changed, change chart size props, and re-render.\n */\n private onResize = debounce(() => {\n this.forceFit();\n }, 300);\n}\n","import { each } from '@antv/util';\nimport { ComponentOption } from '../../interface';\nimport View from '../view';\n\n/** Component controller class type define */\nexport type ControllerCtor = new (view: View) => Controller;\n\n/**\n * Component Controller 规范需要定义的基类\n * 1. 规范的 option 输入\n * 2. 统一的信息获取 API\n * 3. 明确定义的组件事件(名称、数据)\n */\nexport abstract class Controller {\n /** 是否可见 */\n public visible: boolean = true;\n protected view: View;\n /** option 配置,不同组件有自己不同的配置结构 */\n protected option: O;\n /** 所有的 component */\n protected components: ComponentOption[] = [];\n\n constructor(view: View) {\n this.view = view;\n }\n\n public abstract get name(): string;\n\n /**\n * init the component\n */\n public abstract init();\n\n /**\n * render the components\n */\n public abstract render();\n\n /**\n * update the components\n */\n // public abstract update();\n\n /**\n * do layout\n */\n public abstract layout();\n\n /**\n * 组件的更新逻辑\n * - 根据字段为标识,为每一个组件生成一个 id,放到 option 中\n * - 更新的时候按照 id 去做 diff,然后对同的做处理\n * - 创建增加的\n * - 更新已有的\n * - 销毁删除的\n */\n public abstract update();\n\n /**\n * clear\n * @param includeOption 是否清空 option 配置项(used in annotation)\n */\n public clear(includeOption?: boolean) {\n // destroy all components\n each(this.components, (co: ComponentOption) => {\n co.component.destroy();\n });\n\n // clear all component instance\n this.components = [];\n }\n\n /**\n * destroy the component\n */\n public destroy() {\n this.clear();\n }\n\n /**\n * get all components\n * @returns components array\n */\n public getComponents(): ComponentOption[] {\n return this.components;\n }\n\n /**\n * change visibility of component\n * @param visible\n */\n public changeVisible(visible: boolean) {\n if (this.visible === visible) {\n return;\n }\n this.components.forEach((co: ComponentOption) => {\n if (visible) {\n co.component.show();\n } else {\n co.component.hide();\n }\n });\n this.visible = visible;\n }\n}\n","import { deepMix, find, get, isEqual, isFunction, mix, isString, isBoolean, flatten, isArray } from '@antv/util';\nimport { Crosshair, HtmlTooltip, IGroup } from '../../dependents';\nimport { Point, TooltipItem, TooltipOption } from '../../interface';\nimport { getAngleByPoint, getDistanceToCenter, getCoordinateClipCfg } from '../../util/coordinate';\nimport { polarToCartesian } from '../../util/graphics';\nimport { findItemsFromView } from '../../util/tooltip';\nimport { BBox } from '../../util/bbox';\nimport { Controller } from './base';\nimport Event from '../event';\nimport View from '../view';\n\n// Filter duplicates, use `name`, `color`, `value` and `title` property values as condition\nfunction uniq(items) {\n const uniqItems = [];\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const result = find(uniqItems, (subItem) => {\n return (\n subItem.color === item.color &&\n subItem.name === item.name &&\n subItem.value === item.value &&\n subItem.title === item.title\n );\n });\n if (!result) {\n uniqItems.push(item);\n }\n }\n return uniqItems;\n}\n\n/** @ignore */\nexport default class Tooltip extends Controller {\n private tooltip;\n private tooltipMarkersGroup: IGroup;\n private tooltipCrosshairsGroup: IGroup;\n private xCrosshair;\n private yCrosshair;\n private guideGroup: IGroup;\n\n private isLocked: boolean = false;\n private items;\n private title: string;\n private point: Point;\n\n public get name(): string {\n return 'tooltip';\n }\n\n public init() { }\n\n private isVisible() {\n const option = this.view.getOptions().tooltip;\n return option !== false;\n }\n\n public render() { }\n\n /**\n * Shows tooltip\n * @param point\n */\n public showTooltip(point: Point) {\n this.point = point;\n if (!this.isVisible()) {\n // 如果设置 tooltip(false) 则始终不显示\n return;\n }\n const view = this.view;\n const items = this.getTooltipItems(point);\n if (!items.length) {\n // 无内容则不展示,同时 tooltip 需要隐藏\n this.hideTooltip();\n return;\n }\n const title = this.getTitle(items);\n const dataPoint = {\n x: items[0].x,\n y: items[0].y,\n }; // 数据点位置\n\n view.emit(\n 'tooltip:show',\n Event.fromData(view, 'tooltip:show', {\n items,\n title,\n ...point,\n })\n );\n\n const cfg = this.getTooltipCfg();\n const { follow, showMarkers, showCrosshairs, showContent, marker } = cfg;\n const lastItems = this.items;\n const lastTitle = this.title;\n if (!isEqual(lastTitle, title) || !isEqual(lastItems, items)) {\n // 内容发生变化了更新 tooltip\n view.emit(\n 'tooltip:change',\n Event.fromData(view, 'tooltip:change', {\n items,\n title,\n ...point,\n })\n );\n\n if (isFunction(showContent) ? showContent(items) : showContent) {\n // 展示 tooltip 内容框才渲染 tooltip\n if (!this.tooltip) {\n // 延迟生成\n this.renderTooltip();\n }\n this.tooltip.update(\n mix(\n {},\n cfg,\n {\n items: this.getItemsAfterProcess(items),\n title,\n },\n follow ? point : {}\n )\n );\n this.tooltip.show();\n }\n\n if (showMarkers) {\n // 展示 tooltipMarkers,tooltipMarkers 跟随数据\n this.renderTooltipMarkers(items, marker);\n }\n } else {\n // 内容未发生变化,则更新位置\n if (this.tooltip && follow) {\n this.tooltip.update(point);\n this.tooltip.show(); // tooltip 有可能被隐藏,需要保证显示状态\n }\n\n if (this.tooltipMarkersGroup) {\n this.tooltipMarkersGroup.show();\n }\n }\n\n this.items = items;\n this.title = title;\n\n if (showCrosshairs) {\n // 展示 tooltip 辅助线\n const isCrosshairsFollowCursor = get(cfg, ['crosshairs', 'follow'], false); // 辅助线是否要跟随鼠标\n this.renderCrosshairs(isCrosshairsFollowCursor ? point : dataPoint, cfg);\n }\n }\n\n public hideTooltip() {\n const { follow } = this.getTooltipCfg();\n if (!follow) {\n this.point = null;\n return;\n }\n // hide the tooltipMarkers\n const tooltipMarkersGroup = this.tooltipMarkersGroup;\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n }\n\n // hide crosshairs\n const xCrosshair = this.xCrosshair;\n const yCrosshair = this.yCrosshair;\n if (xCrosshair) {\n xCrosshair.hide();\n }\n if (yCrosshair) {\n yCrosshair.hide();\n }\n\n const tooltip = this.tooltip;\n if (tooltip) {\n tooltip.hide();\n }\n\n this.view.emit('tooltip:hide', Event.fromData(this.view, 'tooltip:hide', {}));\n\n this.point = null;\n }\n\n /**\n * lockTooltip\n */\n public lockTooltip() {\n this.isLocked = true;\n if (this.tooltip) {\n // tooltip contianer 可捕获事件\n this.tooltip.setCapture(true);\n }\n }\n\n /**\n * unlockTooltip\n */\n public unlockTooltip() {\n this.isLocked = false;\n const cfg = this.getTooltipCfg();\n if (this.tooltip) {\n // 重置 capture 属性\n this.tooltip.setCapture(cfg.capture);\n }\n }\n\n /**\n * isTooltipLocked\n */\n public isTooltipLocked() {\n return this.isLocked;\n }\n\n public clear() {\n const { tooltip, xCrosshair, yCrosshair, tooltipMarkersGroup } = this;\n if (tooltip) {\n tooltip.hide();\n tooltip.clear();\n }\n\n if (xCrosshair) {\n xCrosshair.clear();\n }\n\n if (yCrosshair) {\n yCrosshair.clear();\n }\n\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.clear();\n }\n\n // 如果 customContent 不为空,就重新生成 tooltip\n if (tooltip?.get('customContent')) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n // title 和 items 需要清空, 否则 tooltip 内容会出现置空的情况\n // 即:需要走进 !isEqual(lastTitle, title) || !isEqual(lastItems, items) 的逻辑,更新 tooltip 的内容\n this.title = null;\n this.items = null;\n }\n\n public destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n if (this.xCrosshair) {\n this.xCrosshair.destroy();\n }\n if (this.yCrosshair) {\n this.yCrosshair.destroy();\n }\n\n if (this.guideGroup) {\n this.guideGroup.remove(true);\n }\n\n this.reset();\n }\n\n public reset() {\n this.items = null;\n this.title = null;\n this.tooltipMarkersGroup = null;\n this.tooltipCrosshairsGroup = null;\n this.xCrosshair = null;\n this.yCrosshair = null;\n this.tooltip = null;\n this.guideGroup = null;\n this.isLocked = false;\n this.point = null;\n }\n\n public changeVisible(visible: boolean) {\n if (this.visible === visible) {\n return;\n }\n const { tooltip, tooltipMarkersGroup, xCrosshair, yCrosshair } = this;\n if (visible) {\n if (tooltip) {\n tooltip.show();\n }\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.show();\n }\n if (xCrosshair) {\n xCrosshair.show();\n }\n if (yCrosshair) {\n yCrosshair.show();\n }\n } else {\n if (tooltip) {\n tooltip.hide();\n }\n if (tooltipMarkersGroup) {\n tooltipMarkersGroup.hide();\n }\n if (xCrosshair) {\n xCrosshair.hide();\n }\n if (yCrosshair) {\n yCrosshair.hide();\n }\n }\n this.visible = visible;\n }\n\n public getTooltipItems(point: Point) {\n let items = this.findItemsFromView(this.view, point);\n if (items.length) {\n // 三层\n items = flatten(items);\n for (const itemArr of items) {\n for (const item of itemArr) {\n const { x, y } = item.mappingData;\n item.x = isArray(x) ? x[x.length - 1] : x;\n item.y = isArray(y) ? y[y.length - 1] : y;\n }\n }\n\n const { shared } = this.getTooltipCfg();\n // shared: false 代表只显示当前拾取到的 shape 的数据,但是一个 view 会有多个 Geometry,所以有可能会拾取到多个 shape\n if (shared === false && items.length > 1) {\n let snapItem = items[0];\n let min = Math.abs(point.y - snapItem[0].y);\n for (const aItem of items) {\n const yDistance = Math.abs(point.y - aItem[0].y);\n if (yDistance <= min) {\n snapItem = aItem;\n min = yDistance;\n }\n }\n items = [snapItem];\n }\n\n return uniq(flatten(items));\n }\n\n return [];\n }\n\n public layout() { }\n\n public update() {\n if (this.point) {\n this.showTooltip(this.point);\n }\n\n if (this.tooltip) {\n // #2279 修复resize之后tooltip越界的问题\n // 确保tooltip已经创建的情况下\n const canvas = this.view.getCanvas();\n // TODO 逍为 tooltip 的区域不应该是 canvas,而应该是整个 特别是在图比较小的时候\n // 更新 region\n this.tooltip.set('region', {\n start: { x: 0, y: 0 },\n end: { x: canvas.get('width'), y: canvas.get('height') },\n });\n }\n }\n\n /**\n * 当前鼠标点是在 enter tooltip 中\n * @param point\n */\n public isCursorEntered(point: Point) {\n // 是可捕获的,并且点在 tooltip dom 上\n if (this.tooltip) {\n const el: HTMLElement = this.tooltip.getContainer();\n const capture = this.tooltip.get('capture');\n\n if (el && capture) {\n const { x, y, width, height } = el.getBoundingClientRect();\n return new BBox(x, y, width, height).isPointIn(point);\n }\n }\n\n return false;\n }\n\n // 获取 tooltip 配置,因为用户可能会通过 view.tooltip() 重新配置 tooltip,所以就不做缓存,每次直接读取\n public getTooltipCfg() {\n const view = this.view;\n const option = view.getOptions().tooltip;\n const processOption = this.processCustomContent(option);\n const theme = view.getTheme();\n const defaultCfg = get(theme, ['components', 'tooltip'], {});\n const enterable = get(processOption, 'enterable', defaultCfg.enterable);\n return deepMix({}, defaultCfg, processOption, {\n capture: enterable || this.isLocked ? true : false,\n });\n }\n\n // process customContent\n protected processCustomContent(option: TooltipOption) {\n if (isBoolean(option) || !get(option, 'customContent')) {\n return option;\n }\n const currentCustomContent = option.customContent;\n const customContent = (title: string, items: any[]) => {\n const content = currentCustomContent(title, items) || '';\n return isString(content) ? '
    ' + content + '
    ' : content;\n };\n return {\n ...option,\n customContent,\n };\n }\n\n private getTitle(items) {\n const title = items[0].title || items[0].name;\n this.title = title;\n\n return title;\n }\n\n private renderTooltip() {\n const canvas = this.view.getCanvas();\n const region = {\n start: { x: 0, y: 0 },\n end: { x: canvas.get('width'), y: canvas.get('height') },\n };\n\n const cfg = this.getTooltipCfg();\n const tooltip = new HtmlTooltip({\n parent: canvas.get('el').parentNode,\n region,\n ...cfg,\n visible: false,\n crosshairs: null,\n });\n\n tooltip.init();\n this.tooltip = tooltip;\n }\n\n private renderTooltipMarkers(items, marker) {\n const tooltipMarkersGroup = this.getTooltipMarkersGroup();\n const rootView = this.view.getRootView();\n const { limitInPlot } = rootView;\n for (const item of items) {\n const { x, y } = item;\n\n // 有裁剪就剪切\n if (limitInPlot || tooltipMarkersGroup?.getClip()) {\n const { type, attrs } = getCoordinateClipCfg(rootView.getCoordinate());\n tooltipMarkersGroup?.setClip({\n type,\n attrs,\n });\n } else {\n // 清除已有的 clip\n tooltipMarkersGroup?.setClip(undefined);\n }\n\n const theme = this.view.getTheme();\n const markerDefaultCfg = get(theme, ['components', 'tooltip', 'marker'], {});\n\n const attrs = {\n fill: item.color,\n symbol: 'circle',\n shadowColor: item.color,\n ...(isFunction(marker) ? { ...markerDefaultCfg, ...marker(item) } : marker),\n x,\n y,\n };\n\n tooltipMarkersGroup.addShape('marker', {\n attrs,\n });\n }\n }\n\n private renderCrosshairs(point: Point, cfg) {\n const crosshairsType = get(cfg, ['crosshairs', 'type'], 'x'); // 默认展示 x 轴上的辅助线\n if (crosshairsType === 'x') {\n if (this.yCrosshair) {\n this.yCrosshair.hide();\n }\n this.renderXCrosshairs(point, cfg);\n } else if (crosshairsType === 'y') {\n if (this.xCrosshair) {\n this.xCrosshair.hide();\n }\n this.renderYCrosshairs(point, cfg);\n } else if (crosshairsType === 'xy') {\n this.renderXCrosshairs(point, cfg);\n this.renderYCrosshairs(point, cfg);\n }\n }\n\n // 渲染 x 轴上的 tooltip 辅助线\n private renderXCrosshairs(point: Point, tooltipCfg) {\n const coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n let start;\n let end;\n if (coordinate.isRect) {\n if (coordinate.isTransposed) {\n start = {\n x: coordinate.start.x,\n y: point.y,\n };\n end = {\n x: coordinate.end.x,\n y: point.y,\n };\n } else {\n start = {\n x: point.x,\n y: coordinate.end.y,\n };\n end = {\n x: point.x,\n y: coordinate.start.y,\n };\n }\n } else {\n // 极坐标下 x 轴上的 crosshairs 表现为半径\n const angle = getAngleByPoint(coordinate, point);\n const center = coordinate.getCenter();\n const radius = coordinate.getRadius();\n end = polarToCartesian(center.x, center.y, radius, angle);\n start = center;\n }\n\n const cfg = deepMix(\n {\n start,\n end,\n container: this.getTooltipCrosshairsGroup(),\n },\n get(tooltipCfg, 'crosshairs', {}),\n this.getCrosshairsText('x', point, tooltipCfg)\n );\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n let xCrosshair = this.xCrosshair;\n if (xCrosshair) {\n xCrosshair.update(cfg);\n } else {\n xCrosshair = new Crosshair.Line(cfg);\n xCrosshair.init();\n }\n xCrosshair.render();\n xCrosshair.show();\n this.xCrosshair = xCrosshair;\n }\n\n // 渲染 y 轴上的辅助线\n private renderYCrosshairs(point: Point, tooltipCfg) {\n const coordinate = this.getViewWithGeometry(this.view).getCoordinate();\n let cfg;\n let type;\n if (coordinate.isRect) {\n let start;\n let end;\n if (coordinate.isTransposed) {\n start = {\n x: point.x,\n y: coordinate.end.y,\n };\n end = {\n x: point.x,\n y: coordinate.start.y,\n };\n } else {\n start = {\n x: coordinate.start.x,\n y: point.y,\n };\n end = {\n x: coordinate.end.x,\n y: point.y,\n };\n }\n cfg = {\n start,\n end,\n };\n type = 'Line';\n } else {\n // 极坐标下 y 轴上的 crosshairs 表现为圆弧\n cfg = {\n center: coordinate.getCenter(),\n // @ts-ignore\n radius: getDistanceToCenter(coordinate, point),\n startAngle: coordinate.startAngle,\n endAngle: coordinate.endAngle,\n };\n type = 'Circle';\n }\n\n cfg = deepMix(\n {\n container: this.getTooltipCrosshairsGroup(),\n },\n cfg,\n get(tooltipCfg, 'crosshairs', {}),\n this.getCrosshairsText('y', point, tooltipCfg)\n );\n delete cfg.type; // 与 Crosshairs 组件的 type 冲突故删除\n\n let yCrosshair = this.yCrosshair;\n if (yCrosshair) {\n // 如果坐标系发生直角坐标系与极坐标的切换操作\n if (\n (coordinate.isRect && yCrosshair.get('type') === 'circle') ||\n (!coordinate.isRect && yCrosshair.get('type') === 'line')\n ) {\n yCrosshair = new Crosshair[type](cfg);\n yCrosshair.init();\n } else {\n yCrosshair.update(cfg);\n }\n } else {\n yCrosshair = new Crosshair[type](cfg);\n yCrosshair.init();\n }\n yCrosshair.render();\n yCrosshair.show();\n this.yCrosshair = yCrosshair;\n }\n\n private getCrosshairsText(type, point: Point, tooltipCfg) {\n let textCfg = get(tooltipCfg, ['crosshairs', 'text']);\n const follow = get(tooltipCfg, ['crosshairs', 'follow']);\n const items = this.items;\n\n if (textCfg) {\n const view = this.getViewWithGeometry(this.view);\n // 需要展示文本\n const firstItem = items[0];\n const xScale = view.getXScale();\n const yScale = view.getYScales()[0];\n let xValue;\n let yValue;\n if (follow) {\n // 如果需要跟随鼠标移动,就需要将当前鼠标坐标点转换为对应的数值\n const invertPoint = this.view.getCoordinate().invert(point);\n xValue = xScale.invert(invertPoint.x); // 转换为原始值\n yValue = yScale.invert(invertPoint.y); // 转换为原始值\n } else {\n xValue = firstItem.data[xScale.field];\n yValue = firstItem.data[yScale.field];\n }\n\n const content = type === 'x' ? xValue : yValue;\n if (isFunction(textCfg)) {\n textCfg = textCfg(type, content, items, point);\n } else {\n textCfg.content = content;\n }\n\n return {\n text: textCfg,\n };\n }\n }\n\n // 获取存储 tooltipMarkers 和 crosshairs 的容器\n private getGuideGroup() {\n if (!this.guideGroup) {\n const foregroundGroup = this.view.foregroundGroup;\n this.guideGroup = foregroundGroup.addGroup({\n name: 'tooltipGuide',\n capture: false,\n });\n }\n\n return this.guideGroup;\n }\n\n // 获取 tooltipMarkers 存储的容器\n private getTooltipMarkersGroup() {\n let tooltipMarkersGroup = this.tooltipMarkersGroup;\n if (tooltipMarkersGroup && !tooltipMarkersGroup.destroyed) {\n tooltipMarkersGroup.clear();\n tooltipMarkersGroup.show();\n } else {\n tooltipMarkersGroup = this.getGuideGroup().addGroup({\n name: 'tooltipMarkersGroup',\n });\n tooltipMarkersGroup.toFront();\n this.tooltipMarkersGroup = tooltipMarkersGroup;\n }\n return tooltipMarkersGroup;\n }\n\n // 获取 tooltip crosshairs 存储的容器\n private getTooltipCrosshairsGroup() {\n let tooltipCrosshairsGroup = this.tooltipCrosshairsGroup;\n if (!tooltipCrosshairsGroup) {\n tooltipCrosshairsGroup = this.getGuideGroup().addGroup({\n name: 'tooltipCrosshairsGroup',\n capture: false,\n });\n tooltipCrosshairsGroup.toBack();\n this.tooltipCrosshairsGroup = tooltipCrosshairsGroup;\n }\n return tooltipCrosshairsGroup;\n }\n\n private findItemsFromView(view: View, point: Point) {\n if (view.getOptions().tooltip === false) {\n // 如果 view 关闭了 tooltip\n return [];\n }\n\n const tooltipCfg = this.getTooltipCfg();\n let result = findItemsFromView(view, point, tooltipCfg);\n // 递归查找,并合并结果\n for (const childView of view.views) {\n result = result.concat(this.findItemsFromView(childView, point));\n }\n\n return result;\n }\n\n // FIXME: hack 方法\n // 因为 tooltip 的交互是挂载在 Chart 上,所以当chart 上没有绘制 Geometry 的时候,就查找不到数据,并且绘图区域同子 View 的区域不同\n private getViewWithGeometry(view) {\n if (view.geometries.length) {\n return view;\n }\n\n return find(view.views, (childView) => this.getViewWithGeometry(childView));\n }\n\n /**\n * 根据用户配置的 items 配置,来进行用户自定义的处理,并返回最终的 items\n * 默认不做任何处理\n */\n private getItemsAfterProcess(originalItems: TooltipItem[]): TooltipItem[] {\n const { customItems } = this.getTooltipCfg();\n const fn = customItems ? customItems : (v) => v;\n\n return fn(originalItems);\n }\n}\n","import { IGroup, IShape } from '../../dependents';\nimport { GAnimateCfg } from '../../interface';\nimport { AnimateExtraCfg } from '../interface';\n\n/** @ignore */\ninterface AnimationMap {\n [key: string]: Animation;\n}\n\ntype Animation = (element: IGroup | IShape, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) => void;\n\nconst ANIMATIONS_MAP: AnimationMap = {};\n\n/**\n * 根据名称获取对应的动画执行函数\n * @param type 动画函数名称\n */\nexport function getAnimation(type: string) {\n return ANIMATIONS_MAP[type.toLowerCase()];\n}\n\n/**\n * 注册动画执行函数\n * @param type 动画执行函数名称\n * @param animation 动画执行函数\n */\nexport function registerAnimation(type: string, animation: Animation) {\n ANIMATIONS_MAP[type.toLowerCase()] = animation;\n}\n","import { deepMix, get, isFunction } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { Coordinate, IGroup, IShape } from '../dependents';\nimport { AnimateCfg, Data, Datum, GAnimateCfg, Point } from '../interface';\nimport { AnimateExtraCfg } from './interface';\n\nimport { getAnimation } from './animation';\n\n// 默认的动画参数配置\nexport const DEFAULT_ANIMATE_CFG = {\n appear: {\n duration: 450,\n easing: 'easeQuadOut',\n }, // 初始入场动画配置\n update: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时发生变更的动画配置\n enter: {\n duration: 400,\n easing: 'easeQuadInOut',\n }, // 更新时新增元素的入场动画配置\n leave: {\n duration: 350,\n easing: 'easeQuadIn',\n }, // 更新时销毁动画配置\n};\n\n// 各个 Geometry 默认的动画执行函数\nconst GEOMETRY_ANIMATE_CFG = {\n interval: (coordinate: Coordinate) => {\n return {\n enter: {\n animation: coordinate.isRect ? (coordinate.isTransposed ? 'scale-in-x' : 'scale-in-y') : 'fade-in',\n },\n update: {\n animation: coordinate.isPolar && coordinate.isTransposed ? 'sector-path-update' : null,\n },\n leave: {\n animation: 'fade-out',\n },\n };\n },\n line: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n path: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n point: {\n appear: {\n animation: 'zoom-in',\n },\n enter: {\n animation: 'zoom-in',\n },\n leave: {\n animation: 'zoom-out',\n },\n },\n area: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n polygon: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n schema: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n edge: {\n enter: {\n animation: 'fade-in',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n label: {\n appear: {\n animation: 'fade-in',\n delay: 450,\n },\n enter: {\n animation: 'fade-in',\n },\n update: {\n animation: 'position-update',\n },\n leave: {\n animation: 'fade-out',\n },\n },\n};\n\n// 各个 Geometry 默认的群组出场动画\nconst GEOMETRY_GROUP_APPEAR_ANIMATION = {\n line: () => {\n return {\n animation: 'wave-in',\n };\n },\n area: () => {\n return {\n animation: 'wave-in',\n };\n },\n path: () => {\n return {\n animation: 'fade-in',\n };\n },\n interval(coordinate: Coordinate) {\n let animation;\n\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n if (coordinate.isPolar && coordinate.isTransposed) {\n // pie chart\n animation = 'wave-in';\n }\n }\n return {\n animation,\n };\n },\n schema: (coordinate) => {\n let animation;\n if (coordinate.isRect) {\n animation = coordinate.isTransposed ? 'grow-in-x' : 'grow-in-y';\n } else {\n animation = 'grow-in-xy';\n }\n return {\n animation,\n };\n },\n polygon: () => {\n return {\n animation: 'fade-in',\n duration: 500,\n };\n },\n edge: () => {\n return {\n animation: 'fade-in',\n };\n },\n};\n\n// 解析用户的动画配置\nfunction parseAnimateConfig(animateCfg: AnimateCfg, data: Data | Datum): GAnimateCfg {\n return {\n delay: isFunction(animateCfg.delay) ? animateCfg.delay(data) : animateCfg.delay,\n easing: isFunction(animateCfg.easing) ? animateCfg.easing(data) : animateCfg.easing,\n duration: isFunction(animateCfg.duration) ? animateCfg.duration(data) : animateCfg.duration,\n callback: animateCfg.callback,\n repeat: animateCfg.repeat,\n };\n}\n\n/**\n * @ignore\n * 获取 elementName 对应的动画配置,当声明了 `animateType`,则返回 `animateType` 对应的动画配置\n * @param elementName 元素名称\n * @param coordinate 做表弟类型\n * @param animateType 可选,动画类型\n */\nexport function getDefaultAnimateCfg(elementName: string, coordinate: Coordinate, animateType?: string) {\n let animateCfg = GEOMETRY_ANIMATE_CFG[elementName];\n\n if (animateCfg) {\n if (isFunction(animateCfg)) {\n animateCfg = animateCfg(coordinate);\n }\n animateCfg = deepMix({}, DEFAULT_ANIMATE_CFG, animateCfg);\n\n if (animateType) {\n return animateCfg[animateType];\n }\n }\n return animateCfg;\n}\n\n/**\n * @ignore\n * 工具函数\n * 根据用户传入的配置为 shape 执行动画\n * @param shape 执行动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外的信息\n */\nexport function doAnimate(shape: IGroup | IShape, animateCfg: AnimateCfg, cfg: AnimateExtraCfg) {\n const data = get(shape.get('origin'), 'data', FIELD_ORIGIN);\n const animation = animateCfg.animation; // 获取动画执行函数\n const parsedAnimateCfg = parseAnimateConfig(animateCfg, data);\n if (animation) {\n // 用户声明了动画执行函数\n const animateFunction = getAnimation(animation);\n if (animateFunction) {\n animateFunction(shape, parsedAnimateCfg, cfg);\n }\n } else {\n // 没有声明,则根据 toAttrs 做差值动画\n shape.animate(cfg.toAttrs, parsedAnimateCfg);\n }\n}\n\n/**\n * @ignore\n * 执行 Geometry 群组入场动画\n * @param container 执行群组动画的图形元素\n * @param animateCfg 动画配置\n * @param geometryType geometry 类型\n * @param coordinate 坐标系对象\n * @param minYPoint y 轴最小值对应的画布坐标点\n */\nexport function doGroupAppearAnimate(\n container: IGroup,\n animateCfg: AnimateCfg,\n geometryType: string,\n coordinate: Coordinate,\n minYPoint: Point\n) {\n if (GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType]) {\n const defaultCfg = GEOMETRY_GROUP_APPEAR_ANIMATION[geometryType](coordinate);\n const animation = getAnimation(get(defaultCfg, 'animation', ''));\n if (animation) {\n const cfg = {\n ...DEFAULT_ANIMATE_CFG.appear,\n ...defaultCfg,\n ...animateCfg,\n };\n container.stopAnimate(); // 先结束当前 container 动画\n animation(container, cfg, {\n coordinate,\n minYPoint,\n toAttrs: null,\n });\n }\n }\n}\n","/**\n * Name of Background Shape\n */\nexport const BACKGROUND_SHAPE = 'element-background';\n","import { deepMix, each, get, isArray, isEmpty, isEqual, isFunction, isString } from '@antv/util';\n// 暂未发包\n// @ts-ignore\nimport { propagationDelegate } from '@antv/component';\nimport { doAnimate } from '../../animate';\nimport Base from '../../base';\nimport { BBox, IGroup, IShape } from '../../dependents';\nimport { AnimateOption, Datum, ShapeFactory, ShapeInfo, StateCfg } from '../../interface';\nimport { getReplaceAttrs } from '../../util/graphics';\nimport Geometry from '../base';\nimport { GEOMETRY_LIFE_CIRCLE } from '../../constant';\nimport { BACKGROUND_SHAPE } from '../shape/constant';\n\n/** Element 构造函数传入参数类型 */\ninterface ElementCfg {\n /** 用于创建各种 shape 的工厂对象 */\n shapeFactory: ShapeFactory;\n /** shape 容器 */\n container: IGroup;\n /** element 的索引 */\n elementIndex?: number;\n /** 虚拟 group,用户可以不传入 */\n offscreenGroup?: IGroup;\n /** 是否可见 */\n visible?: boolean;\n}\n\n/**\n * Element 图形元素。\n * 定义:在 G2 中,我们会将数据通过图形语法映射成不同的图形,比如点图,数据集中的每条数据会对应一个点,柱状图每条数据对应一个柱子,线图则是一组数据对应一条折线,Element 即一条/一组数据对应的图形元素,它代表一条数据或者一个数据集,在图形层面,它可以是单个 Shape 也可以是多个 Shape,我们称之为图形元素。\n */\nexport default class Element extends Base {\n /** 用于创建各种 shape 的工厂对象 */\n public shapeFactory: ShapeFactory;\n /** shape 容器 */\n public container: IGroup;\n /** element 索引 */\n public elementIndex: number;\n /** 最后创建的图形对象 */\n public shape: IShape | IGroup;\n /** shape 的动画配置 */\n public animate: AnimateOption | boolean;\n\n // 非构造函数属性,需要外部赋值\n /** element 对应的 Geometry 实例 */\n public geometry: Geometry;\n /** 保存 shape 对应的 label */\n public labelShape: IGroup[] = [];\n\n /** 绘制的 shape 类型 */\n private shapeType: string;\n\n /** shape 绘制需要的数据 */\n private model: ShapeInfo;\n /** 原始数据 */\n private data: Datum;\n // 存储当前开启的状态\n private states: string[] = [];\n private statesStyle;\n // 虚拟 Group\n private offscreenGroup: IGroup;\n\n constructor(cfg: ElementCfg) {\n super(cfg);\n\n const { shapeFactory, container, offscreenGroup, elementIndex, visible = true } = cfg;\n this.shapeFactory = shapeFactory;\n this.container = container;\n this.offscreenGroup = offscreenGroup;\n this.visible = visible;\n this.elementIndex = elementIndex;\n }\n\n /**\n * 绘制图形。\n * @param model 绘制数据。\n * @param isUpdate 可选,是否是更新发生后的绘制。\n */\n public draw(model: ShapeInfo, isUpdate: boolean = false) {\n this.model = model;\n this.data = model.data; // 存储原始数据\n this.shapeType = this.getShapeType(model);\n\n // 绘制图形\n this.drawShape(model, isUpdate);\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n }\n\n /**\n * 更新图形。\n * @param model 更新的绘制数据。\n */\n public update(model: ShapeInfo) {\n const { shapeFactory, shape } = this;\n if (!shape) {\n return;\n }\n\n // 更新数据\n this.model = model;\n this.data = model.data;\n this.shapeType = this.getShapeType(model);\n\n // step 1: 更新 shape 携带的信息\n this.setShapeInfo(shape, model);\n\n // step 2: 使用虚拟 Group 重新绘制 shape,然后更新当前 shape\n const offscreenGroup = this.getOffscreenGroup();\n const newShape = shapeFactory.drawShape(this.shapeType, model, offscreenGroup);\n // @ts-ignore\n newShape.cfg.data = this.data;\n // @ts-ignore\n newShape.cfg.origin = model;\n // label 需要使用\n newShape.cfg.element = this;\n\n // step 3: 同步 shape 样式\n this.syncShapeStyle(shape, newShape, this.getStates(), this.getAnimateCfg('update'));\n }\n\n /**\n * 销毁 element 实例。\n */\n public destroy() {\n const { shapeFactory, shape } = this;\n\n if (shape) {\n const animateCfg = this.getAnimateCfg('leave');\n if (animateCfg) {\n // 指定了动画配置则执行销毁动画\n doAnimate(shape, animateCfg, {\n coordinate: shapeFactory.coordinate,\n toAttrs: {\n ...shape.attr(),\n },\n });\n } else {\n // 否则直接销毁\n shape.remove(true);\n }\n }\n\n // reset\n this.states = [];\n this.shapeFactory = undefined;\n this.container = undefined;\n this.shape = undefined;\n this.animate = undefined;\n this.geometry = undefined;\n this.labelShape = [];\n this.model = undefined;\n this.data = undefined;\n this.offscreenGroup = undefined;\n this.statesStyle = undefined;\n\n super.destroy();\n }\n\n /**\n * 显示或者隐藏 element。\n * @param visible 是否可见。\n */\n public changeVisible(visible: boolean) {\n super.changeVisible(visible);\n\n if (visible) {\n if (this.shape) {\n this.shape.show();\n }\n if (this.labelShape) {\n this.labelShape.forEach((label: IGroup) => {\n label.show();\n });\n }\n } else {\n if (this.shape) {\n this.shape.hide();\n }\n if (this.labelShape) {\n this.labelShape.forEach((label: IGroup) => {\n label.hide();\n });\n }\n }\n }\n\n /**\n * 设置 Element 的状态。\n *\n * 目前 Element 开放三种状态:\n * 1. active\n * 2. selected\n * 3. inactive\n *\n * 这三种状态相互独立,可以进行叠加。\n *\n * 这三种状态的样式可在 [[Theme]] 主题中或者通过 `geometry.state()` 接口进行配置。\n *\n * ```ts\n * // 激活 active 状态\n * setState('active', true);\n * ```\n *\n * @param stateName 状态名\n * @param stateStatus 是否开启状态\n */\n public setState(stateName: string, stateStatus: boolean) {\n const { states, shapeFactory, model, shape, shapeType } = this;\n\n const index = states.indexOf(stateName);\n if (stateStatus) {\n // 开启状态\n if (index > -1) {\n // 该状态已经开启,则返回\n return;\n }\n states.push(stateName);\n if (stateName === 'active' || stateName === 'selected') {\n shape?.toFront();\n }\n } else {\n if (index === -1) {\n // 关闭状态,但是状态未设置过\n return;\n }\n states.splice(index, 1);\n if (stateName === 'active' || stateName === 'selected') {\n const { sortZIndex, zIndexReversed } = this.geometry;\n const idx = zIndexReversed ? this.geometry.elements.length - this.elementIndex : this.elementIndex;\n sortZIndex ? shape.setZIndex(idx) : shape.set('zIndex', idx);\n }\n }\n\n // 使用虚拟 group 重新绘制 shape,然后对这个 shape 应用状态样式后,更新当前 shape。\n const offscreenShape = shapeFactory.drawShape(shapeType, model, this.getOffscreenGroup());\n if (states.length) {\n // 应用当前状态\n this.syncShapeStyle(shape, offscreenShape, states, null);\n } else {\n // 如果没有状态,则需要恢复至原始状态\n this.syncShapeStyle(shape, offscreenShape, ['reset'], null);\n }\n\n offscreenShape.remove(true); // 销毁,减少内存占用\n\n const eventObject = {\n state: stateName,\n stateStatus,\n element: this,\n target: this.container,\n };\n this.container.emit('statechange', eventObject);\n // @ts-ignore\n propagationDelegate(this.shape, 'statechange', eventObject);\n }\n\n /**\n * 清空状量态,恢复至初始状态。\n */\n public clearStates() {\n const states = this.states;\n\n each(states, (state) => {\n this.setState(state, false);\n });\n\n this.states = [];\n }\n\n /**\n * 查询当前 Element 上是否已设置 `stateName` 对应的状态。\n * @param stateName 状态名称。\n * @returns true 表示存在,false 表示不存在。\n */\n public hasState(stateName: string): boolean {\n return this.states.includes(stateName);\n }\n\n /**\n * 获取当前 Element 上所有的状态。\n * @returns 当前 Element 上所有的状态数组。\n */\n public getStates(): string[] {\n return this.states;\n }\n\n /**\n * 获取 Element 对应的原始数据。\n * @returns 原始数据。\n */\n public getData(): Datum {\n return this.data;\n }\n\n /**\n * 获取 Element 对应的图形绘制数据。\n * @returns 图形绘制数据。\n */\n public getModel(): ShapeInfo {\n return this.model;\n }\n\n /**\n * 返回 Element 元素整体的 bbox,包含文本及文本连线(有的话)。\n * @returns 整体包围盒。\n */\n public getBBox(): BBox {\n const { shape, labelShape } = this;\n let bbox = {\n x: 0,\n y: 0,\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0,\n width: 0,\n height: 0,\n };\n if (shape) {\n bbox = shape.getCanvasBBox();\n }\n if (labelShape) {\n labelShape.forEach((label: IGroup) => {\n const labelBBox = label.getCanvasBBox();\n bbox.x = Math.min(labelBBox.x, bbox.x);\n bbox.y = Math.min(labelBBox.y, bbox.y);\n bbox.minX = Math.min(labelBBox.minX, bbox.minX);\n bbox.minY = Math.min(labelBBox.minY, bbox.minY);\n bbox.maxX = Math.max(labelBBox.maxX, bbox.maxX);\n bbox.maxY = Math.max(labelBBox.maxY, bbox.maxY);\n });\n }\n\n bbox.width = bbox.maxX - bbox.minX;\n bbox.height = bbox.maxY - bbox.minY;\n\n return bbox;\n }\n\n private getStatesStyle() {\n if (!this.statesStyle) {\n const { shapeType, geometry, shapeFactory } = this;\n const stateOption = geometry.stateOption;\n const defaultShapeType = shapeFactory.defaultShapeType;\n const stateTheme = shapeFactory.theme[shapeType] || shapeFactory.theme[defaultShapeType];\n this.statesStyle = deepMix({}, stateTheme, stateOption);\n }\n\n return this.statesStyle;\n }\n\n // 从主题中获取对应状态量的样式\n private getStateStyle(stateName: string, shapeKey?: string): StateCfg {\n const statesStyle = this.getStatesStyle();\n const stateCfg = get(statesStyle, [stateName, 'style'], {});\n const shapeStyle = stateCfg[shapeKey] || stateCfg;\n if (isFunction(shapeStyle)) {\n return shapeStyle(this);\n }\n\n return shapeStyle;\n }\n\n // 获取动画配置\n private getAnimateCfg(animateType: string) {\n const animate = this.animate;\n if (animate) {\n const cfg = animate[animateType];\n\n if (cfg) {\n // 增加动画的回调函数,如果外部传入了,则先执行外部,然后发射 geometry 的 animate 事件\n return {\n ...cfg,\n callback: () => {\n isFunction(cfg.callback) && cfg.callback();\n this.geometry?.emit(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE);\n },\n };\n }\n return cfg;\n }\n\n return null;\n }\n\n // 绘制图形\n private drawShape(model: ShapeInfo, isUpdate: boolean = false) {\n const { shapeFactory, container, shapeType } = this;\n\n // 自定义 shape 有可能返回空 shape\n this.shape = shapeFactory.drawShape(shapeType, model, container);\n\n if (this.shape) {\n this.setShapeInfo(this.shape, model); // 存储绘图数据\n // @ts-ignore\n const name = this.shape.cfg.name;\n // 附加 element 的 name, name 现在支持数组了,很好用了\n if (!name) {\n // 这个地方如果用户添加了 name, 则附加 name ,否则就添加自己的 name\n // @ts-ignore\n this.shape.cfg.name = ['element', this.shapeFactory.geometryType];\n } else if (isString(name)) {\n // @ts-ignore\n this.shape.cfg.name = ['element', name];\n }\n // 执行入场动画\n const animateType = isUpdate ? 'enter' : 'appear';\n const animateCfg = this.getAnimateCfg(animateType);\n if (animateCfg) {\n // 开始执行动画的生命周期\n this.geometry?.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_DRAW_ANIMATE);\n\n doAnimate(this.shape, animateCfg, {\n coordinate: shapeFactory.coordinate,\n toAttrs: {\n ...this.shape.attr(),\n },\n });\n }\n }\n }\n\n // 获取虚拟 Group\n private getOffscreenGroup() {\n if (!this.offscreenGroup) {\n const GroupCtor = this.container.getGroupBase(); // 获取分组的构造函数\n this.offscreenGroup = new GroupCtor({});\n }\n\n return this.offscreenGroup;\n }\n\n // 设置 shape 上需要携带的信息\n private setShapeInfo(shape: IShape | IGroup, data: ShapeInfo) {\n // @ts-ignore\n shape.cfg.origin = data;\n // @ts-ignore\n shape.cfg.element = this;\n if (shape.isGroup()) {\n const children = shape.get('children');\n children.forEach((child) => {\n this.setShapeInfo(child, data);\n });\n }\n }\n\n // 更新当前 shape 的样式\n private syncShapeStyle(\n sourceShape: IGroup | IShape,\n targetShape: IGroup | IShape,\n states: string[] = [],\n animateCfg,\n index: number = 0\n ) {\n if (!sourceShape || !targetShape) {\n return;\n }\n // 所有的 shape 都需要同步 clip\n const clip = sourceShape.get('clipShape');\n const newClip = targetShape.get('clipShape');\n\n this.syncShapeStyle(clip, newClip, states, animateCfg);\n\n if (sourceShape.isGroup()) {\n const children = sourceShape.get('children');\n const newChildren = targetShape.get('children');\n for (let i = 0; i < children.length; i++) {\n this.syncShapeStyle(children[i], newChildren[i], states, animateCfg, index + i);\n }\n } else {\n if (!isEmpty(states) && !isEqual(states, ['reset'])) {\n let name = sourceShape.get('name');\n if (isArray(name)) {\n // 会附加 element 的 name\n name = name[1];\n }\n\n each(states, (state) => {\n // background shape 不进行状态样式设置\n if (targetShape.get('name') !== BACKGROUND_SHAPE) {\n const style = this.getStateStyle(state, name || index); // 如果用户没有设置 name,则默认根据索引值\n targetShape.attr(style);\n }\n });\n }\n const newAttrs = getReplaceAttrs(sourceShape as IShape, targetShape as IShape);\n\n if (this.animate) {\n if (animateCfg) {\n this.geometry?.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_DRAW_ANIMATE);\n // 需要进行动画\n doAnimate(sourceShape, animateCfg, {\n coordinate: this.shapeFactory.coordinate,\n toAttrs: newAttrs,\n shapeModel: this.model,\n });\n } else if (!isEmpty(states)) {\n sourceShape.stopAnimate();\n sourceShape.animate(newAttrs, {\n duration: 300,\n });\n } else {\n sourceShape.attr(newAttrs);\n }\n } else {\n sourceShape.attr(newAttrs);\n }\n }\n }\n\n private getShapeType(model: ShapeInfo) {\n const shape = get(model, 'shape');\n return isArray(shape) ? shape[0] : shape;\n }\n}\n","import { BBox, IGroup, IShape } from '../../dependents';\nimport { LooseObject } from '../../interface';\nimport { GeometryLabelConstructor } from './base';\nimport { LabelItem } from './interface';\n\n/**\n * label 布局函数定义\n * @param items 存储每个 label 的详细信息\n * @param labels 所有的 labels 图形实例\n * @param shapes 所有 label 对应的图形元素实例\n * @param region 画布区域\n * @param cfg 用于存储各个布局函数开放给用户的配置数据\n */\ntype GeometryLabelsLayoutFn = (\n items: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox,\n cfg?: LooseObject\n) => void;\n\nconst GEOMETRY_LABELS_MAP: Record = {};\nconst GEOMETRY_LABELS_LAYOUT_MAP: Record = {};\n\n/**\n * 获取 `type` 对应的 [[GeometryLabel]] 类\n * @param type\n * @returns\n */\nexport function getGeometryLabel(type: string): GeometryLabelConstructor {\n return GEOMETRY_LABELS_MAP[type.toLowerCase()];\n}\n\n/**\n * 注册定义的 GeometryLabel 类\n * @param type GeometryLabel 类型名称\n * @param ctor GeometryLabel 类\n */\nexport function registerGeometryLabel(type: string, ctor: GeometryLabelConstructor) {\n GEOMETRY_LABELS_MAP[type.toLowerCase()] = ctor;\n}\n\n/**\n * 获取 `type` 对应的 [[GeometryLabelsLayoutFn]] label 布局函数\n * @param type 布局函数名称\n * @returns\n */\nexport function getGeometryLabelLayout(type: string): GeometryLabelsLayoutFn {\n return GEOMETRY_LABELS_LAYOUT_MAP[type.toLowerCase()];\n}\n\n/**\n * 注册定义的 label 布局函数\n * @param type label 布局函数名称\n * @param layoutFn label 布局函数\n */\nexport function registerGeometryLabelLayout(type: string, layoutFn: GeometryLabelsLayoutFn) {\n GEOMETRY_LABELS_LAYOUT_MAP[type.toLowerCase()] = layoutFn;\n}\n","import { LooseObject } from '@antv/g-svg';\nimport { parsePathString } from '@antv/path-util';\nimport { deepMix, get, upperFirst } from '@antv/util';\nimport { IGroup, IShape, PathCommand } from '../../dependents';\nimport {\n Point,\n RegisterShape,\n RegisterShapeFactory,\n Shape,\n ShapeFactory,\n ShapeInfo,\n ShapeMarkerAttrs,\n ShapeMarkerCfg,\n ShapePoint,\n} from '../../interface';\n\nimport { convertNormalPath, convertPolarPath } from './util/path';\n\n/** ShapeFactory 基类 */\nconst ShapeFactoryBase = {\n /** 坐标系对象 */\n coordinate: null,\n /** 默认绘制的 Shape 类型 */\n defaultShapeType: null,\n /** 主题样式 */\n theme: null,\n /**\n * 获取 shape 绘制需要的关键点\n * @param shapeType shape 类型\n * @param shapePoint 每条数据映射后的坐标点以及 size 数值\n * @returns 图形关键点信息\n */\n getShapePoints(shapeType: string, shapePoint: ShapePoint) {\n const shape = this.getShape(shapeType);\n if (shape.getPoints) {\n return shape.getPoints(shapePoint);\n }\n\n return this.getDefaultPoints(shapePoint);\n },\n /**\n * 根据 shape 类型获取具体的 shape 实例\n * @param shapeType string shape 的类型\n * @returns\n */\n getShape(shapeType: string): Shape {\n const shape = this[shapeType] || this[this.defaultShapeType];\n shape.coordinate = this.coordinate;\n\n return shape;\n },\n /**\n * 获取 shape 的默认关键点\n * @override\n */\n getDefaultPoints() {\n return [];\n },\n /**\n * 获取 shape 的默认绘制样式 (内置的 shapeFactory 均有注册默认样式)\n */\n getDefaultStyle(geometryTheme: LooseObject): LooseObject {\n return get(geometryTheme, [this.defaultShapeType, 'default', 'style'], {});\n },\n /**\n * 获取 shape 对应的缩略图配置信息。\n * @param shapeType shape 类型\n * @param color 颜色\n * @param isInPolar 是否在极坐标系下\n * @returns 返回缩略图 marker 配置。\n */\n getMarker(shapeType: string, markerCfg: ShapeMarkerCfg): ShapeMarkerAttrs {\n let shape = this.getShape(shapeType);\n\n if (!shape.getMarker) {\n const defaultShapeType = this.defaultShapeType;\n shape = this.getShape(defaultShapeType);\n }\n\n const theme = this.theme;\n const shapeStyle = get(theme, [shapeType, 'default'], {});\n const markerStyle = shape.getMarker(markerCfg);\n\n return deepMix({}, shapeStyle, markerStyle);\n },\n /**\n * 绘制 shape\n * @override\n * @param shapeType 绘制的 shape 类型\n * @param cfg 绘制 shape 需要的信息\n * @param element Element 实例\n * @returns\n */\n drawShape(shapeType: string, cfg: ShapeInfo, container: IGroup): IShape | IGroup {\n const shape = this.getShape(shapeType);\n return shape.draw(cfg, container);\n },\n};\n\n/** Shape 基类 */\nconst ShapeBase = {\n /** 坐标系对象 */\n coordinate: null,\n /**\n * 将归一化的 path 转换成坐标系下的 path\n * @param path 归一化的路径\n * @returns\n */\n parsePath(path: string): PathCommand[] {\n const coordinate = this.coordinate;\n let parsedPath = parsePathString(path);\n if (coordinate.isPolar) {\n parsedPath = convertPolarPath(coordinate, parsedPath);\n } else {\n parsedPath = convertNormalPath(coordinate, parsedPath);\n }\n return parsedPath;\n },\n /**\n * 将归一化的坐标转换成画布坐标\n * @param point 归一化的坐标点数据\n * @returns\n */\n parsePoint(point: Point): Point {\n const coordinate = this.coordinate;\n return coordinate.convert(point);\n },\n /**\n * 0~1 points 转 画布 points\n * @param points 节点集合\n * @returns\n */\n parsePoints(points: Point[]): Point[] {\n const coordinate = this.coordinate;\n return points.map((point) => {\n return coordinate.convert(point);\n });\n },\n /**\n * 绘制 shape\n * @override\n */\n draw(cfg: ShapeInfo, container: IGroup) {},\n};\n\nconst ShapeFactoryMap = {};\n\n/**\n * 注册 ShapeFactory。\n * @param factoryName ShapeFactory 名称,对应 Geometry 几何标记名称。\n * @param cfg 注册 ShapeFactory 需要覆写定义的属性。\n * @returns 返回 ShapeFactory 对象。\n */\nexport function registerShapeFactory(factoryName: string, cfg: RegisterShapeFactory): ShapeFactory {\n const className = upperFirst(factoryName);\n const geomObj = {\n ...ShapeFactoryBase,\n ...cfg,\n geometryType: factoryName,\n };\n ShapeFactoryMap[className] = geomObj;\n return geomObj;\n}\n\n/**\n * 注册 Shape。\n * @param factoryName 对应的 ShapeFactory 名称。\n * @param shapeType 注册的 shape 名称。\n * @param cfg 注册 Shape 需要覆写定义的属性。\n * @returns shape 返回注册的 shape 对象。\n */\nexport function registerShape(factoryName: string, shapeType: string, cfg: RegisterShape): Shape {\n const className = upperFirst(factoryName);\n const factory = ShapeFactoryMap[className];\n const shapeObj = {\n ...ShapeBase,\n ...cfg,\n };\n factory[shapeType] = shapeObj;\n return shapeObj;\n}\n\n/**\n * 获取 factoryName 对应的 shapeFactory\n * @param factoryName\n * @returns shape factory\n */\nexport function getShapeFactory(factoryName: string): ShapeFactory {\n const className = upperFirst(factoryName);\n return ShapeFactoryMap[className];\n}\n","import { isEqual, some } from '@antv/util';\nimport { ShapeInfo } from '../../interface';\n\n/**\n * @ignore\n * Determines whether model is change\n * @param currentModel\n * @param preModel\n * @returns\n */\nexport function isModelChange(currentModel: ShapeInfo, preModel: ShapeInfo) {\n return some(\n ['color', 'shape', 'size', 'x', 'y', 'isInCircle', 'data', 'style', 'defaultStyle', 'points', 'mappingData'],\n (key: string) => {\n return !isEqual(currentModel[key], preModel[key]);\n }\n );\n}\n","import { isArray } from '@antv/util';\n\n/** @ignore */\nexport function parseFields(field: string | string[]): string[] {\n if (isArray(field)) {\n return field;\n }\n\n return field.split('*');\n}\n","/**\n * 对比当前元素和之前的元素,返回 added, updated, removed\n * @param keyItem 之前的元素的,按照 key-item 的 object 的形式存储\n * @param keys 现在的元素,按照 array 的形式存储\n * @returns 由 added, updated, removed array 构成的 object\n */\nexport function diff(keyItem: Record, keys: string[]) {\n const added = [];\n const updated = [];\n const removed = [];\n const keyIncluded = new Map();\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (keyItem[key]) updated.push(key);\n else added.push(key);\n keyIncluded.set(key, true);\n }\n\n Object.keys(keyItem).forEach((key) => {\n if (!keyIncluded.has(key)) removed.push(key);\n });\n\n return {\n added,\n updated,\n removed,\n };\n}\n","import { Adjust, getAdjust as getAdjustClass } from '@antv/adjust';\nimport { Attribute, getAttribute as getAttributeClass } from '@antv/attr';\nimport {\n clone,\n deepMix,\n each,\n flatten,\n get,\n isArray,\n isEmpty,\n isEqual,\n isFunction,\n isNil,\n isNumber,\n isObject,\n isPlainObject,\n isString,\n set,\n} from '@antv/util';\nimport { doGroupAppearAnimate, getDefaultAnimateCfg } from '../animate';\nimport Base from '../base';\nimport { FIELD_ORIGIN, GEOMETRY_LIFE_CIRCLE, GROUP_ATTRS } from '../constant';\nimport { BBox, Coordinate, IGroup, IShape, Scale } from '../dependents';\nimport {\n AdjustOption,\n AdjustType,\n AnimateOption,\n AttributeOption,\n ColorAttrCallback,\n Data,\n Datum,\n GeometryLabelCfg,\n GeometryTooltipOption,\n LabelCallback,\n LabelOption,\n LooseObject,\n MappingDatum,\n ScaleOption,\n ShapeAttrCallback,\n ShapeFactory,\n ShapeInfo,\n ShapeMarkerCfg,\n ShapeMarkerAttrs,\n ShapePoint,\n SizeAttrCallback,\n StateOption,\n StyleCallback,\n StyleOption,\n TooltipCallback,\n CustomOption,\n} from '../interface';\nimport { uniq } from '../util/helper';\nimport Element from './element';\nimport { getGeometryLabel } from './label';\nimport GeometryLabel from './label/base';\nimport { getShapeFactory } from './shape/base';\nimport { group } from './util/group-data';\nimport { isModelChange } from './util/is-model-change';\nimport { parseFields } from './util/parse-fields';\nimport { diff } from './util/diff';\nimport { inferScaleType } from '../util/scale';\nimport { getXDimensionLength } from '../util/coordinate';\n\n/** @ignore */\ninterface AttributeInstanceCfg {\n fields?: string[];\n callback?: (...args) => any;\n values?: string[] | number[];\n scales?: Scale[];\n}\ninterface DimValuesMapType {\n [dim: string]: number[];\n}\n/** @ignore */\ninterface AdjustInstanceCfg {\n type: AdjustType;\n adjustNames?: string[];\n xField?: string;\n yField?: string;\n\n dodgeBy?: string;\n marginRatio?: number;\n dodgeRatio?: number;\n\n size?: number;\n height?: number;\n reverseOrder?: boolean;\n\n /** 像素级柱间宽度,调整offset */\n intervalPadding?: number;\n dodgePadding?: number;\n /** x维度长度,计算归一化padding使用 */\n xDimensionLength?: number;\n /** 分组数,计算offset */\n groupNum?: number;\n /** 用户配置宽度 size */\n defaultSize?: number;\n /** 最大最小宽度约束 */\n maxColumnWidth?: number;\n minColumnWidth?: number;\n /** 柱宽比例 */\n columnWidthRatio?: number;\n /** 用户自定义的dimValuesMap */\n dimValuesMap?: DimValuesMapType;\n}\n\n/** geometry.init() 传入参数 */\nexport interface InitCfg {\n /** 坐标系 */\n coordinate?: Coordinate;\n /** 数据 */\n data?: Data;\n /** 主题对象 */\n theme?: LooseObject;\n /** 列定义 */\n scaleDefs?: Record;\n /** 因为数据使用的引用,所以需要有一个标识位标识数据是否发生了更新 */\n isDataChanged?: boolean;\n isCoordinateChanged?: boolean;\n}\n\n/** Geometry 构造函数参数 */\nexport interface GeometryCfg {\n /** Geometry shape 的容器。 */\n container: IGroup;\n /** 绘制的坐标系对象。 */\n coordinate?: Coordinate;\n /** 绘制数据。 */\n data?: Data;\n /** 需要的 scales。 */\n scales?: Record;\n /** 列定义 */\n scaleDefs?: Record;\n /** Geometry labels 的容器 */\n labelsContainer?: IGroup;\n /** 是否对数据进行排序 */\n sortable?: boolean;\n /** elements 的 zIndex 默认按顺序提升,通过 zIndexReversed 可以反序,从而数据越前,层级越高 */\n zIndexReversed?: boolean;\n /** 是否需要对 zIndex 进行 sort。因为耗时长,由具体场景自行决定 */\n sortZIndex?: boolean;\n /** 延迟渲染 Geometry 数据标签. 设置为 true 时,会在浏览器空闲时期被调用, 也可以指定具体 timeout 时间 */\n useDeferredLabel?: boolean | number;\n /** 是否可见 */\n visible?: boolean;\n /** 主题配置 */\n theme?: LooseObject;\n\n /** 组间距 */\n intervalPadding?: number;\n /** 组内间距 */\n dodgePadding?: number;\n /** 柱状图最大宽度 */\n maxColumnWidth?: number;\n /** 柱状图最小宽度 */\n minColumnWidth?: number;\n /** 默认宽度占比,interval类型和schema类型通用 */\n columnWidthRatio?: number;\n /** 玫瑰图占比 */\n roseWidthRatio?: number;\n /** 多层饼图/环图占比 */\n multiplePieWidthRatio?: number;\n}\n\n/**\n * Geometry 几何标记基类,主要负责数据到图形属性的映射以及绘制逻辑。\n */\nexport default class Geometry extends Base {\n /** Geometry 几何标记类型。 */\n public readonly type: string = 'base';\n /** ShapeFactory 对应的类型。 */\n public readonly shapeType: string;\n\n // 在创建 Geometry 实例时可以传入的属性\n /** Coordinate 坐标系实例。 */\n public coordinate: Coordinate;\n /** 用户绘制数据。 */\n public data: Data;\n /** 图形绘制容器。 */\n public readonly container: IGroup;\n /** label 绘制容器。 */\n public readonly labelsContainer: IGroup;\n /** 是否对数据进行排序,默认为 false。 */\n public sortable: boolean;\n /** 当前 Geometry 实例主题。 */\n public theme: LooseObject;\n /** 存储 geometry 需要的 scales,需要外部传入。 */\n public scales: Record;\n /** scale 定义,需要外部传入。 */\n public scaleDefs: Record;\n /** 画布区域,用于 label 布局。 */\n public canvasRegion: BBox;\n\n // 内部产生的属性\n /** Attribute map */\n public attributes: Record = {};\n /** Element map */\n public elements: Element[] = [];\n /**\n * 存储处理后的数据,\n * + init() 及 updateData() 逻辑后, 结构为 Data[];\n * + paint() 逻辑后,结构为 MappingDatum[][]。\n */\n public dataArray: MappingDatum[][];\n /** 存储 tooltip 配置信息。 */\n public tooltipOption: GeometryTooltipOption | boolean;\n /** 存储 label 配置信息。 */\n public labelOption: LabelOption | false;\n /** 状态量相关的配置项 */\n public stateOption: StateOption;\n /** 使用 key-value 结构存储 Element,key 为每个 Element 实例对应的唯一 ID */\n public elementsMap: Record = {};\n /** animate 配置项 */\n public animateOption: AnimateOption | boolean = true;\n /** 图形属性映射配置 */\n protected attributeOption: Record = {};\n /** adjust 配置项 */\n protected adjustOption: AdjustOption[];\n /** style 配置项 */\n protected styleOption: StyleOption;\n /** custom 自定义的配置项 */\n protected customOption: CustomOption;\n /** 每个 Geometry 对应的 Shape 工厂实例,用于创建各个 Shape */\n protected shapeFactory: ShapeFactory;\n /** 存储上一次渲染时的 element 映射表,用于更新逻辑 */\n protected lastElementsMap: Record = {};\n /** 是否生成多个点来绘制图形。 */\n protected generatePoints: boolean = false;\n /** 存储发生图形属性映射前的数据 */\n protected beforeMappingData: Data[] = null;\n /** 存储每个 shape 的默认 size,用于 Interval、Schema 几何标记 */\n protected defaultSize: number;\n\n // 用户通过 geometry 构造函数设置的主题\n private userTheme: LooseObject;\n private adjusts: Record = {};\n private lastAttributeOption;\n private idFields: string[] = [];\n private geometryLabel: GeometryLabel;\n\n // 柱状图间距相关配置\n /** 组间距 */\n protected intervalPadding: number;\n /** 组内间距 */\n protected dodgePadding: number;\n /** 柱状图最大宽度 */\n protected maxColumnWidth: number;\n /** 柱状图最小宽度 */\n protected minColumnWidth: number;\n /** 一般柱状图宽度占比 */\n protected columnWidthRatio: number;\n /** 玫瑰图占比 */\n protected roseWidthRatio: number;\n /** 多层饼图/环图占比 */\n protected multiplePieWidthRatio: number;\n /** elements 的 zIndex 默认按顺序提升,通过 zIndexReversed 可以反序,从而数据越前,层级越高 */\n public zIndexReversed?: boolean;\n /** 是否需要对 zIndex 进行 sort。因为耗时长,由具体场景自行决定 */\n public sortZIndex?: boolean;\n protected useDeferredLabel?: null | number;\n\n /** 虚拟 Group,用于图形更新 */\n private offscreenGroup: IGroup;\n private groupScales: Scale[];\n private hasSorted: boolean = false;\n protected isCoordinateChanged: boolean = false;\n\n /**\n * 创建 Geometry 实例。\n * @param cfg\n */\n constructor(cfg: GeometryCfg) {\n super(cfg);\n\n const {\n container,\n labelsContainer,\n coordinate,\n data,\n sortable = false,\n visible = true,\n theme,\n scales = {},\n scaleDefs = {},\n // 柱状图间隔与宽度相关配置\n intervalPadding,\n dodgePadding,\n maxColumnWidth,\n minColumnWidth,\n columnWidthRatio,\n roseWidthRatio,\n multiplePieWidthRatio,\n zIndexReversed,\n sortZIndex,\n useDeferredLabel,\n } = cfg;\n\n this.container = container;\n this.labelsContainer = labelsContainer;\n this.coordinate = coordinate;\n this.data = data;\n this.sortable = sortable;\n this.visible = visible;\n this.userTheme = theme;\n this.scales = scales;\n this.scaleDefs = scaleDefs;\n // 柱状图间隔与宽度相关配置\n this.intervalPadding = intervalPadding;\n this.dodgePadding = dodgePadding;\n this.maxColumnWidth = maxColumnWidth;\n this.minColumnWidth = minColumnWidth;\n this.columnWidthRatio = columnWidthRatio;\n this.roseWidthRatio = roseWidthRatio;\n this.multiplePieWidthRatio = multiplePieWidthRatio;\n this.zIndexReversed = zIndexReversed;\n this.sortZIndex = sortZIndex;\n this.useDeferredLabel = useDeferredLabel ? (typeof useDeferredLabel === 'number' ? useDeferredLabel : Infinity) : null;\n }\n\n /**\n * 配置 position 通道映射规则。\n *\n * @example\n * ```typescript\n * // 数据结构: [{ x: 'A', y: 10, color: 'red' }]\n * geometry.position('x*y');\n * geometry.position([ 'x', 'y' ]);\n * geometry.position({\n * fields: [ 'x', 'y' ],\n * });\n * ```\n *\n * @param cfg 映射规则\n * @returns\n */\n public position(cfg: string | string[] | AttributeOption): Geometry {\n let positionCfg = cfg;\n if (!isPlainObject(cfg)) {\n // 字符串字段或者数组字段\n positionCfg = {\n fields: parseFields(cfg),\n };\n }\n\n const fields = get(positionCfg, 'fields');\n if (fields.length === 1) {\n // 默认填充一维 1*xx\n fields.unshift('1');\n set(positionCfg, 'fields', fields);\n }\n set(this.attributeOption, 'position', positionCfg);\n\n return this;\n }\n\n /**\n * 配置 color 通道映射规则。\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n * geometry.color({\n * fields: [ 'x' ],\n * values: [ '#1890ff', '#5AD8A6' ],\n * });\n * ```\n *\n * @param field 映射规则\n * @returns\n */\n public color(field: AttributeOption): Geometry;\n /**\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n *\n * // 使用 '#1890ff' 颜色渲染图形\n * geometry.color('#1890ff');\n *\n * // 根据 x 字段的数据值进行颜色的映射,这时候 G2 会在内部调用默认的回调函数,读取默认提供的颜色进行数据值到颜色值的映射。\n * geometry.color('x');\n *\n * // 将 'x' 字段的数据值映射至指定的颜色值 colors(可以是字符串也可以是数组),此时用于通常映射分类数据\n * geometry.color('x', [ '#1890ff', '#5AD8A6' ]);\n *\n * // 使用回调函数进行颜色值的自定义;可以使用多个字段使用、*号连接\n * geometry.color('x', (xVal) => {\n * if (xVal === 'a') {\n * return 'red';\n * }\n * return 'blue';\n * });\n *\n * // 指定颜色的渐变路径,用于映射连续的数据\n * geometry.color('x', '#BAE7FF-#1890FF-#0050B3');\n * ```\n *\n * @param field 参与颜色映射的数据字段,多个字段使用 '*' 连接符进行连接。\n * @param cfg Optional, color 映射规则。\n * @returns\n */\n public color(field: string, cfg?: string | string[] | ColorAttrCallback): Geometry;\n public color(field: AttributeOption | string, cfg?: string | string[] | ColorAttrCallback): Geometry {\n this.createAttrOption('color', field, cfg);\n\n return this;\n }\n\n /**\n * 配置 shape 通道映射规则。\n *\n * @example\n *\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n * geometry.shape({\n * fields: [ 'x' ],\n * });\n * ```\n *\n * @param field 映射规则配置。\n * @returns\n */\n public shape(field: AttributeOption): Geometry;\n /**\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n *\n * // 指定常量,将所有数据值映射到固定的 shape\n * geometry.shape('circle');\n *\n * // 将指定的字段映射到内置的 shapes 数组中\n * geometry.shape('x');\n *\n * // 将指定的字段映射到指定的 shapes 数组中\n * geometry.shape('x', [ 'circle', 'diamond', 'square' ]);\n *\n * // 使用回调函数获取 shape,用于个性化的 shape 定制,可以根据单个或者多个字段确定\n * geometry.shape('x', (xVal) => {\n * if (xVal === 'a') {\n * return 'circle';\n * }\n * return 'diamond';\n * });\n * ```\n *\n * @param field 参与 shape 映射的数据字段,多个字段使用 '*' 连接符进行连接。\n * @param cfg Optional, shape 映射规则。\n * @returns\n */\n public shape(field: string, cfg?: string[] | ShapeAttrCallback): Geometry;\n public shape(field: AttributeOption | string, cfg?: string[] | ShapeAttrCallback): Geometry {\n this.createAttrOption('shape', field, cfg);\n\n return this;\n }\n\n /**\n * 配置 size 通道映射规则。\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n * geometry.size({\n * values: [ 10 ],\n * })\n * ```\n *\n * @param field 映射规则。\n * @returns\n */\n public size(field: AttributeOption): Geometry;\n /**\n *\n * @example\n * ```typescript\n * // data: [{ x: 'A', y: 10, color: 'red' }, { x: 'B', y: 30, color: 'yellow' }]\n *\n * // 直接指定像素大小\n * geometry.size(10);\n *\n * // 指定映射到 size 的字段,使用内置的默认大小范围为 [1, 10]\n * geometry.size('x');\n *\n * // 指定映射到 size 字段外,还提供了 size 的最大值和最小值范围\n * geometry.size('x', [ 5, 30 ]);\n *\n * // 使用回调函数映射 size,用于个性化的 size 定制,可以使用多个字段进行映射\n * geometry.size('x', (xVal) => {\n * if (xVal === 'a') {\n * return 10;\n * }\n * return 5;\n * });\n * ```\n *\n * @param field 参与 size 映射的数据字段,多个字段使用 '*' 连接符进行连接。\n * @param cfg Optional, size 映射规则\n * @returns\n */\n public size(field: number | string, cfg?: [number, number] | SizeAttrCallback): Geometry;\n public size(field: AttributeOption | number | string, cfg?: [number, number] | SizeAttrCallback): Geometry {\n this.createAttrOption('size', field, cfg);\n\n return this;\n }\n\n /**\n * 设置数据调整方式。G2 目前内置了四种类型:\n * 1. dodge\n * 2. stack\n * 3. symmetric\n * 4. jitter\n *\n *\n * **Tip**\n * + 对于 'dodge' 类型,可以额外进行如下属性的配置:\n * ```typescript\n * geometry.adjust('dodge', {\n * marginRatio: 0, // 取 0 到 1 范围的值(相对于每个柱子宽度),用于控制一个分组中柱子之间的间距\n * dodgeBy: 'x', // 该属性只对 'dodge' 类型生效,声明以哪个数据字段为分组依据\n * });\n * ```\n *\n * + 对于 'stack' 类型,可以额外进行如下属性的配置:\n * ```typescript\n * geometry.adjust('stack', {\n * reverseOrder: false, // 用于控制是否对数据进行反序操作\n * });\n * ```\n *\n * @example\n * ```typescript\n * geometry.adjust('stack');\n *\n * geometry.adjust({\n * type: 'stack',\n * reverseOrder: false,\n * });\n *\n * // 组合使用 adjust\n * geometry.adjust([ 'stack', 'dodge' ]);\n *\n * geometry.adjust([\n * { type: 'stack' },\n * { type: 'dodge', dodgeBy: 'x' },\n * ]);\n * ```\n *\n * @param adjustCfg 数据调整配置\n * @returns\n */\n public adjust(adjustCfg: string | string[] | AdjustOption | AdjustOption[]): Geometry {\n let adjusts: any = adjustCfg;\n if (isString(adjustCfg) || isPlainObject(adjustCfg)) {\n adjusts = [adjustCfg];\n }\n each(adjusts, (adjust, index) => {\n if (!isObject(adjust)) {\n adjusts[index] = { type: adjust };\n }\n });\n\n this.adjustOption = adjusts;\n return this;\n }\n\n /**\n * 图形样式配置。\n *\n * @example\n * ```typescript\n * // 配置图形样式\n * style({\n * lineWidth: 2,\n * stroke: '#1890ff',\n * });\n *\n * // 根据具体的数据进行详细配置\n * style({\n * fields: [ 'x', 'y' ], // 数据字段\n * callback: (xVal, yVal) => {\n * const style = { lineWidth: 2, stroke: '#1890ff' };\n * if (xVal === 'a') {\n * style.lineDash = [ 2, 2 ];\n * }\n * return style;\n * },\n * });\n * ```\n *\n * @param field 配置样式属性或者样式规则。\n * @returns\n */\n public style(field: StyleOption | LooseObject): Geometry;\n /**\n * @example\n * ```typescript\n * style('x*y', (xVal, yVal) => {\n * const style = { lineWidth: 2, stroke: '#1890ff' };\n * if (xVal === 'a') {\n * style.lineDash = [ 2, 2 ];\n * }\n * return style;\n * });\n * ```\n *\n * @param field 数据字段或者样式配置规则。\n * @param styleFunc Optional, 样式配置回调函数。\n * @returns\n */\n public style(field: string, styleFunc: StyleCallback): Geometry;\n public style(field: StyleOption | LooseObject | string, styleFunc?: StyleCallback): Geometry {\n if (isString(field)) {\n const fields = parseFields(field);\n this.styleOption = {\n fields,\n callback: styleFunc,\n };\n } else {\n const { fields, callback, cfg } = field as StyleOption;\n if (fields || callback || cfg) {\n this.styleOption = field;\n } else {\n this.styleOption = {\n cfg: field,\n };\n }\n }\n\n return this;\n }\n\n /**\n * 配置 Geometry 显示的 tooltip 内容。\n *\n * `tooltip(false)` 代表关闭 tooltip。\n * `tooltip(true)` 代表开启 tooltip。\n *\n * Geometry 默认允许 tooltip 展示,我们可以使用以下方法对 tooltip 的展示内容进行配置:\n *\n * @example\n * ```typescript\n * // data: [{x: 'a', y: 10}]\n * tooltip({\n * fields: [ 'x' ],\n * });\n * ```\n * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*268uQ50if60AAAAAAAAAAABkARQnAQ)\n *\n * ```typescript\n * tooltip({\n * fields: [ 'x', 'y' ],\n * });\n * ```\n * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*A_ujSa8QhtcAAAAAAAAAAABkARQnAQ)\n *\n * tooltip() 方法同样支持数据映射及回调用法:\n *\n * @example\n * ```typescript\n * chart.tooltip({\n * itemTpl: '
  • {x}: {y}
  • ',\n * });\n *\n * chart.line()\n * .position('x*y')\n * .tooltip({\n * fields: [ 'x', 'y' ],\n * callback: (x, y) => {\n * return {\n * x,\n * y,\n * };\n * },\n * });\n * ```\n *\n * 其返回的值必须为对象,该值中的属性同 chart.tooltip() 的 itemTpl 模板相对应,返回的变量可用于 itemTpl 的字符串模板。\n *\n * @param field tooltip 配置信息。\n * @returns\n */\n public tooltip(field: GeometryTooltipOption | boolean): Geometry;\n /**\n * @example\n * ```typescript\n * // data: [{x: 'a', y: 10}]\n *\n * // 等同于 tooltip({ fields: [ 'x' ] })\n * tooltip('x');\n *\n * // 等同于 tooltip({ fields: [ 'x', 'y' ] })\n * tooltip('x*y');\n *\n * // 等同于 tooltip({ fields: [ 'x', 'y' ], callback: (x, y) => { x, y } })\n * tooltip('x*y', (x, y) => {\n * return {\n * x,\n * y,\n * };\n * });\n * ```\n *\n * @param field 参与映射的字段。\n * @param cfg Optional, 回调函数\n * @returns\n */\n public tooltip(field: string, cfg?: TooltipCallback): Geometry;\n public tooltip(field: GeometryTooltipOption | boolean | string, cfg?: TooltipCallback): Geometry {\n if (isString(field)) {\n const fields = parseFields(field);\n this.tooltipOption = {\n fields,\n callback: cfg,\n };\n } else {\n this.tooltipOption = field;\n }\n\n return this;\n }\n\n /**\n * Geometry 动画配置。\n *\n * + `animate(false)` 关闭动画\n * + `animate(true)` 开启动画,默认开启。\n *\n * 我们将动画分为四个场景:\n * 1. appear: 图表第一次加载时的入场动画;\n * 2. enter: 图表绘制完成,发生更新后,产生的新图形的进场动画;\n * 3. update: 图表绘制完成,数据发生变更后,有状态变更的图形的更新动画;\n * 4. leave: 图表绘制完成,数据发生变更后,被销毁图形的销毁动画。\n *\n * @example\n * ```typescript\n * animate({\n * enter: {\n * duration: 1000, // enter 动画执行时间\n * },\n * leave: false, // 关闭 leave 销毁动画\n * });\n * ```\n *\n * @param cfg 动画配置\n * @returns\n */\n public animate(cfg: AnimateOption | boolean): Geometry {\n this.animateOption = cfg;\n return this;\n }\n\n /**\n * Geometry label 配置。\n *\n * @example\n * ```ts\n * // data: [ {x: 1, y: 2, z: 'a'}, {x: 2, y: 2, z: 'b'} ]\n * // 在每个图形上显示 z 字段对应的数值\n * label({\n * fields: [ 'z' ]\n * });\n *\n * label(false); // 不展示 label\n *\n * // 在每个图形上显示 x 字段对应的数值,同时配置文本颜色为红色\n * label('x', {\n * style: {\n * fill: 'red',\n * },\n * })\n *\n * // 以 type 类型的 label 渲染每个图形上显示 x 字段对应的数值,同时格式化文本内容\n * label('x', (xValue) => {\n * return {\n * content: xValue + '%',\n * };\n * }, {\n * type: 'base' // 声明 label 类型\n * })\n * ```\n *\n * @param field\n * @returns label\n */\n public label(field: LabelOption | false | string): Geometry;\n public label(field: string, secondParam: GeometryLabelCfg | LabelCallback): Geometry;\n public label(field: string, secondParam: LabelCallback, thirdParam: GeometryLabelCfg): Geometry;\n public label(\n field: string | LabelOption | false,\n secondParam?: GeometryLabelCfg | LabelCallback,\n thirdParam?: GeometryLabelCfg\n ): Geometry {\n if (isString(field)) {\n const labelOption: LabelOption = {};\n const fields = parseFields(field);\n labelOption.fields = fields;\n if (isFunction(secondParam)) {\n labelOption.callback = secondParam;\n } else if (isPlainObject(secondParam)) {\n labelOption.cfg = secondParam;\n }\n\n if (thirdParam) {\n labelOption.cfg = thirdParam;\n }\n this.labelOption = labelOption;\n } else {\n this.labelOption = field;\n }\n\n return this;\n }\n\n /**\n * 设置状态对应的样式。\n *\n * @example\n * ```ts\n * chart.interval().state({\n * selected: {\n * animate: { duration: 100, easing: 'easeLinear' },\n * style: {\n * lineWidth: 2,\n * stroke: '#000',\n * },\n * },\n * });\n * ```\n *\n * 如果图形 shape 是由多个 shape 组成,即为一个 G.Group 对象,那么针对 group 中的每个 shape,我们需要使用下列方式进行状态样式设置:\n * 如果我们为 group 中的每个 shape 设置了 'name' 属性(shape.set('name', 'xx')),则以 'name' 作为 key,否则默认以索引值(即 shape 的 添加顺序)为 key。\n *\n * ```ts\n * chart.interval().shape('groupShape').state({\n * selected: {\n * style: {\n * 0: { lineWidth: 2 },\n * 1: { fillOpacity: 1 },\n * }\n * }\n * });\n * ```\n *\n * @param cfg 状态样式\n */\n public state(cfg: StateOption) {\n this.stateOption = cfg;\n return this;\n }\n\n /**\n * 用于向 shape 中传入自定义的数据。目前可能仅仅可能用于在自定义 shape 的时候,像自定义 shape 中传入自定义的数据,方便实现自定义 shape 的配置能力。\n *\n * @example\n * ```ts\n * chart.interval().customInfo({ yourData: 'hello, g2!' });\n * ```\n *\n * 然后在自定义 shape 的时候,可以拿到这个信息。\n *\n * ```ts\n * registerShape('interval', 'your-shape', {\n * draw(shapeInfo, container) {\n * const { customInfo } = shapeInfo;\n * console.log(customInfo); // will log { yourData: 'hello, g2!' }.\n * }\n * });\n * ```\n *\n * @param cfg\n */\n public customInfo(cfg: any) {\n this.customOption = cfg;\n return this;\n }\n\n /**\n * 初始化 Geomtry 实例:\n * 创建 [[Attribute]] and [[Scale]] 实例,进行数据处理,包括分组、数值化以及数据调整。\n */\n public init(cfg: InitCfg = {}) {\n this.setCfg(cfg);\n this.initAttributes(); // 创建图形属性\n\n // 数据加工:分组 -> 数字化 -> adjust\n this.processData(this.data);\n\n // 调整 scale\n this.adjustScale();\n }\n\n /**\n * Geometry 更新。\n * @param [cfg] 更新的配置\n */\n public update(cfg: InitCfg = {}) {\n const { data, isDataChanged, isCoordinateChanged } = cfg;\n const { attributeOption, lastAttributeOption } = this;\n\n if (!isEqual(attributeOption, lastAttributeOption)) {\n // 映射发生改变,则重新创建图形属性\n this.init(cfg);\n } else if (data && (isDataChanged || !isEqual(data, this.data))) {\n // 数据发生变化\n this.setCfg(cfg);\n this.initAttributes(); // 创建图形属性\n this.processData(data); // 数据加工:分组 -> 数字化 -> adjust\n } else {\n // 有可能 coordinate 变化\n this.setCfg(cfg);\n }\n\n // 调整 scale\n this.adjustScale();\n this.isCoordinateChanged = isCoordinateChanged;\n }\n\n /**\n * 将原始数据映射至图形空间,同时创建图形对象。\n */\n public paint(isUpdate: boolean = false) {\n if (this.animateOption) {\n this.animateOption = deepMix({}, getDefaultAnimateCfg(this.type, this.coordinate), this.animateOption);\n }\n\n this.defaultSize = undefined;\n this.elementsMap = {};\n this.elements = [];\n const offscreenGroup = this.getOffscreenGroup();\n offscreenGroup.clear();\n\n const beforeMappingData = this.beforeMappingData;\n const dataArray = this.beforeMapping(beforeMappingData);\n\n this.dataArray = new Array(dataArray.length);\n for (let i = 0; i < dataArray.length; i++) {\n const data = dataArray[i];\n this.dataArray[i] = this.mapping(data);\n }\n this.updateElements(this.dataArray, isUpdate);\n this.lastElementsMap = this.elementsMap;\n\n if (this.canDoGroupAnimation(isUpdate)) {\n // 如果用户没有配置 appear.animation,就默认走整体动画\n const container = this.container;\n const type = this.type;\n const coordinate = this.coordinate;\n const animateCfg = get(this.animateOption, 'appear');\n const yScale = this.getYScale();\n const yMinPoint = coordinate.convert({\n x: 0,\n y: yScale.scale(this.getYMinValue()),\n });\n doGroupAppearAnimate(container, animateCfg, type, coordinate, yMinPoint);\n }\n\n // 添加 label\n if (this.labelOption) {\n const deferred = this.useDeferredLabel;\n const callback = (() => this.renderLabels(flatten(this.dataArray) as unknown as MappingDatum[], isUpdate)).bind(this);\n if (typeof deferred === 'number') {\n // Use `requestIdleCallback` to render labels in idle time (like react fiber)\n const timeout = (typeof deferred === 'number' && deferred !== Infinity) ? deferred : 0;\n if (!window.requestIdleCallback) {\n setTimeout(callback, timeout);\n } else {\n const options = timeout && timeout !== Infinity ? { timeout } : undefined;\n window.requestIdleCallback(callback, options);\n }\n } else {\n callback();\n }\n }\n\n // 缓存,用于更新\n this.lastAttributeOption = {\n ...this.attributeOption,\n };\n\n if (this.visible === false) {\n // 用户在初始化的时候声明 visible: false\n this.changeVisible(false);\n }\n }\n\n /**\n * 清空当前 Geometry,配置项仍保留,但是内部创建的对象全部清空。\n * @override\n */\n public clear() {\n const { container, geometryLabel, offscreenGroup } = this;\n if (container) {\n container.clear();\n }\n\n if (geometryLabel) {\n geometryLabel.clear();\n }\n\n if (offscreenGroup) {\n offscreenGroup.clear();\n }\n\n // 属性恢复至出厂状态\n this.scaleDefs = undefined;\n this.attributes = {};\n this.scales = {};\n this.elementsMap = {};\n this.lastElementsMap = {};\n this.elements = [];\n this.adjusts = {};\n this.dataArray = null;\n this.beforeMappingData = null;\n this.lastAttributeOption = undefined;\n this.defaultSize = undefined;\n this.idFields = [];\n this.groupScales = undefined;\n this.hasSorted = false;\n this.isCoordinateChanged = false;\n }\n\n /**\n * 销毁 Geometry 实例。\n */\n public destroy() {\n this.clear();\n const container = this.container;\n container.remove(true);\n\n if (this.offscreenGroup) {\n this.offscreenGroup.remove(true);\n this.offscreenGroup = null;\n }\n\n if (this.geometryLabel) {\n this.geometryLabel.destroy();\n this.geometryLabel = null;\n }\n this.theme = undefined;\n this.shapeFactory = undefined;\n\n super.destroy();\n }\n\n /**\n * 获取决定分组的图形属性对应的 scale 实例。\n * @returns\n */\n public getGroupScales(): Scale[] {\n return this.groupScales;\n }\n\n /**\n * 根据名字获取图形属性实例。\n */\n public getAttribute(name: string): Attribute {\n return this.attributes[name];\n }\n\n /** 获取 x 轴对应的 scale 实例。 */\n public getXScale(): Scale {\n return this.getAttribute('position').scales[0];\n }\n\n /** 获取 y 轴对应的 scale 实例。 */\n public getYScale(): Scale {\n return this.getAttribute('position').scales[1];\n }\n\n /**\n * 获取决定分组的图形属性实例。\n */\n public getGroupAttributes(): Attribute[] {\n const rst = [];\n each(this.attributes, (attr: Attribute) => {\n if (GROUP_ATTRS.includes(attr.type)) {\n rst.push(attr);\n }\n });\n return rst;\n }\n\n /** 获取图形属性默认的映射值。 */\n public getDefaultValue(attrName: string) {\n let value: any;\n const attr = this.getAttribute(attrName);\n if (attr && isEmpty(attr.scales)) {\n // 获取映射至常量的值\n value = attr.values[0];\n }\n return value;\n }\n\n /**\n * 获取该数据发生图形映射后对应的 Attribute 图形空间数据。\n * @param attr Attribute 图形属性实例。\n * @param obj 需要进行映射的原始数据。\n * @returns\n */\n public getAttributeValues(attr: Attribute, obj: Datum) {\n const params = [];\n const scales = attr.scales;\n for (let index = 0, length = scales.length; index < length; index++) {\n const scale = scales[index];\n const field = scale.field;\n if (scale.isIdentity) {\n params.push(scale.values);\n } else {\n params.push(obj[field]);\n }\n }\n\n return attr.mapping(...params);\n }\n\n /**\n * 获取对应的 adjust 实例\n * @param adjustType\n * @returns\n */\n public getAdjust(adjustType: string) {\n return this.adjusts[adjustType];\n }\n\n /**\n * 获得 coordinate 实例\n * @returns\n */\n public getCoordinate() {\n return this.coordinate;\n }\n\n public getData() {\n return this.data;\n }\n\n /**\n * 获取 shape 对应的 marker 样式。\n * @param shapeName shape 具体名字\n * @param cfg marker 信息\n * @returns\n */\n public getShapeMarker(shapeName: string, cfg: ShapeMarkerCfg): ShapeMarkerAttrs {\n const shapeFactory = this.getShapeFactory();\n return shapeFactory.getMarker(shapeName, cfg);\n }\n\n /**\n * 根据一定的规则查找 Geometry 的 Elements。\n *\n * ```typescript\n * getElementsBy((element) => {\n * const data = element.getData();\n *\n * return data.a === 'a';\n * });\n * ```\n *\n * @param condition 定义查找规则的回调函数。\n * @returns\n */\n public getElementsBy(condition: (element: Element) => boolean): Element[] {\n return this.elements.filter((element) => condition(element));\n }\n\n /**\n * 获取 Geometry 的所有 Elements。\n *\n * ```typescript\n * getElements();\n * ```\n */\n public getElements() {\n return this.elements;\n }\n\n /**\n * 获取数据对应的唯一 id。\n * @param data Element 对应的绘制数据\n * @returns\n */\n public getElementId(data: MappingDatum | MappingDatum[]) {\n data = isArray(data) ? data[0] : data;\n const originData = data[FIELD_ORIGIN];\n\n // 如果用户声明了使用哪些字段作为 id 值\n if (this.idFields.length) {\n let elementId = originData[this.idFields[0]];\n for (let index = 1; index < this.idFields.length; index++) {\n elementId += '-' + originData[this.idFields[index]];\n }\n\n return elementId;\n }\n\n const type = this.type;\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const xField = xScale.field || 'x';\n const yField = yScale.field || 'y';\n const yVal = originData[yField];\n let xVal;\n if (xScale.type === 'identity') {\n xVal = xScale.values[0];\n } else {\n xVal = originData[xField];\n }\n\n let id: string;\n if (type === 'interval' || type === 'schema') {\n id = `${xVal}`;\n } else if (type === 'line' || type === 'area' || type === 'path') {\n id = type;\n } else {\n id = `${xVal}-${yVal}`;\n }\n\n const groupScales = this.groupScales;\n\n for (let index = 0, length = groupScales.length; index < length; index++) {\n const groupScale = groupScales[index];\n const field = groupScale.field;\n id = `${id}-${originData[field]}`;\n }\n\n // 用户在进行 dodge 类型的 adjust 调整的时候设置了 dodgeBy 属性\n const dodgeAdjust = this.getAdjust('dodge');\n if (dodgeAdjust) {\n const dodgeBy = dodgeAdjust.dodgeBy;\n if (dodgeBy) {\n id = `${id}-${originData[dodgeBy]}`;\n }\n }\n\n if (this.getAdjust('jitter')) {\n id = `${id}-${data.x}-${data.y}`;\n }\n\n return id;\n }\n\n /**\n * 获取所有需要创建 scale 的字段名称。\n */\n public getScaleFields(): string[] {\n const fields = [];\n const tmpMap = new Map();\n const { attributeOption, labelOption, tooltipOption } = this;\n // 获取图形属性上的 fields\n for (const attributeType in attributeOption) {\n if (attributeOption.hasOwnProperty(attributeType)) {\n const eachOpt = attributeOption[attributeType];\n if (eachOpt.fields) {\n uniq(eachOpt.fields, fields, tmpMap);\n } else if (eachOpt.values) {\n // 考虑 size(10), shape('circle') 等场景\n uniq(eachOpt.values, fields, tmpMap);\n }\n }\n }\n // 获取 label 上的字段\n if (labelOption && labelOption.fields) {\n uniq(labelOption.fields, fields, tmpMap);\n }\n\n // 获取 tooltip 上的字段\n if (isObject(tooltipOption) && tooltipOption.fields) {\n uniq(tooltipOption.fields, fields, tmpMap);\n }\n\n return fields;\n }\n\n /**\n * 显示或者隐藏 geometry。\n * @param visible\n */\n public changeVisible(visible: boolean) {\n super.changeVisible(visible);\n const elements = this.elements;\n for (let index = 0, length = elements.length; index < length; index++) {\n const element = elements[index];\n element.changeVisible(visible);\n }\n if (visible) {\n if (this.container) {\n this.container.show();\n }\n if (this.labelsContainer) {\n this.labelsContainer.show();\n }\n } else {\n if (this.container) {\n this.container.hide();\n }\n if (this.labelsContainer) {\n this.labelsContainer.hide();\n }\n }\n }\n\n /**\n * 获得所有的字段\n */\n public getFields() {\n const uniqMap = new Map();\n const fields = [];\n\n Object.values(this.attributeOption).forEach((cfg) => {\n const fs = cfg?.fields || [];\n fs.forEach((f) => {\n if (!uniqMap.has(f)) {\n fields.push(f);\n }\n uniqMap.set(f, true);\n });\n }, []);\n\n return fields;\n }\n\n /**\n * 获取当前配置中的所有分组 & 分类的字段。\n * @return fields string[]\n */\n public getGroupFields(): string[] {\n const groupFields = [];\n const tmpMap = new Map(); // 用于去重过滤\n for (let index = 0, length = GROUP_ATTRS.length; index < length; index++) {\n const attributeName = GROUP_ATTRS[index];\n const cfg = this.attributeOption[attributeName];\n if (cfg && cfg.fields) {\n uniq(cfg.fields, groupFields, tmpMap);\n }\n }\n\n return groupFields;\n }\n\n /**\n * 获得图形的 x y 字段。\n */\n public getXYFields() {\n const [x, y] = this.attributeOption.position.fields;\n return [x, y];\n }\n\n /**\n * x 字段\n * @returns\n */\n public getXField(): string {\n return get(this.getXYFields(), [0]);\n }\n\n /**\n * y 字段\n * @returns\n */\n public getYField(): string {\n return get(this.getXYFields(), [1]);\n }\n\n /**\n * 获取该 Geometry 下所有生成的 shapes。\n * @returns shapes\n */\n public getShapes(): (IShape | IGroup)[] {\n return this.elements.map((element: Element) => element.shape);\n }\n\n /**\n * 获取虚拟 Group。\n * @returns\n */\n public getOffscreenGroup() {\n if (!this.offscreenGroup) {\n const GroupCtor = this.container.getGroupBase(); // 获取分组的构造函数\n this.offscreenGroup = new GroupCtor({});\n }\n return this.offscreenGroup;\n }\n\n // 对数据进行排序\n public sort(mappingArray: Data[]) {\n if (!this.hasSorted) {\n // 未发生过排序\n const xScale = this.getXScale();\n const xField = xScale.field;\n for (let index = 0; index < mappingArray.length; index++) {\n const itemArr = mappingArray[index];\n itemArr.sort((obj1: Datum, obj2: Datum) => {\n return xScale.translate(obj1[FIELD_ORIGIN][xField]) - xScale.translate(obj2[FIELD_ORIGIN][xField]);\n });\n }\n }\n\n this.hasSorted = true;\n }\n\n /**\n * 调整度量范围。主要针对发生层叠以及一些特殊需求的 Geometry,比如 Interval 下的柱状图 Y 轴默认从 0 开始。\n */\n protected adjustScale() {\n const yScale = this.getYScale();\n // 如果数据发生过 stack adjust,需要调整下 yScale 的数据范围\n if (yScale && this.getAdjust('stack')) {\n this.updateStackRange(yScale, this.beforeMappingData);\n }\n }\n\n /**\n * 获取当前 Geometry 对应的 Shape 工厂实例。\n */\n protected getShapeFactory() {\n const shapeType = this.shapeType;\n if (!getShapeFactory(shapeType)) {\n return;\n }\n if (!this.shapeFactory) {\n this.shapeFactory = clone(getShapeFactory(shapeType)); // 防止多个 view 共享一个 shapeFactory 实例,导致 coordinate 被篡改\n }\n // 因为这里缓存了 shapeFactory,但是外部可能会变更 coordinate,导致无法重新设置到 shapeFactory 中\n this.shapeFactory.coordinate = this.coordinate;\n // theme 原因同上\n this.shapeFactory.theme = this.theme.geometries[shapeType] || {};\n\n return this.shapeFactory;\n }\n\n /**\n * 获取每个 Shape 对应的关键点数据。\n * @param obj 经过分组 -> 数字化 -> adjust 调整后的数据记录\n * @returns\n */\n protected createShapePointsCfg(obj: Datum): S {\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const x = this.normalizeValues(obj[xScale.field], xScale);\n let y; // 存在没有 y 的情况\n\n if (yScale) {\n y = this.normalizeValues(obj[yScale.field], yScale);\n } else {\n y = obj.y ? obj.y : 0.1;\n }\n\n return {\n x,\n y,\n y0: yScale ? yScale.scale(this.getYMinValue()) : undefined,\n } as S;\n }\n\n /**\n * 创建 Element 实例。\n * @param mappingDatum Element 对应的绘制数据\n * @param [isUpdate] 是否处于更新阶段\n * @returns element 返回创建的 Element 实例\n */\n protected createElement(mappingDatum: MappingDatum, index: number, isUpdate: boolean = false): Element {\n const { container } = this;\n\n const shapeCfg = this.getDrawCfg(mappingDatum); // 获取绘制图形的配置信息\n const shapeFactory = this.getShapeFactory();\n\n const element = new Element({\n shapeFactory,\n container,\n offscreenGroup: this.getOffscreenGroup(),\n elementIndex: index,\n });\n element.animate = this.animateOption;\n element.geometry = this;\n element.draw(shapeCfg, isUpdate); // 绘制\n\n return element;\n }\n\n /**\n * 获取每条数据对应的图形绘制数据。\n * @param mappingDatum 映射后的数据\n * @returns draw cfg\n */\n protected getDrawCfg(mappingDatum: MappingDatum): ShapeInfo {\n const originData = mappingDatum[FIELD_ORIGIN]; // 原始数据\n const cfg: ShapeInfo = {\n mappingData: mappingDatum, // 映射后的数据\n data: originData, // 原始数据\n x: mappingDatum.x,\n y: mappingDatum.y,\n color: mappingDatum.color,\n size: mappingDatum.size,\n isInCircle: this.coordinate.isPolar,\n customInfo: this.customOption,\n };\n\n let shapeName = mappingDatum.shape;\n if (!shapeName && this.getShapeFactory()) {\n shapeName = this.getShapeFactory().defaultShapeType;\n }\n cfg.shape = shapeName;\n // 获取默认样式\n const theme = this.theme.geometries[this.shapeType];\n cfg.defaultStyle = get(theme, [shapeName, 'default'], {}).style;\n if (!cfg.defaultStyle && this.getShapeFactory()) {\n cfg.defaultStyle = this.getShapeFactory().getDefaultStyle(theme);\n }\n\n const styleOption = this.styleOption;\n if (styleOption) {\n cfg.style = this.getStyleCfg(styleOption, originData);\n }\n if (this.generatePoints) {\n cfg.points = mappingDatum.points;\n cfg.nextPoints = mappingDatum.nextPoints;\n }\n\n return cfg;\n }\n\n protected updateElements(mappingDataArray: MappingDatum[][], isUpdate: boolean = false): void {\n const keyDatum = new Map();\n const keys: string[] = [];\n\n // 用来保持 diff 元素之后 added, updated 的相对顺序\n const keyIndex = new Map();\n let index = 0;\n\n // 获得更新数据所有的 keys\n // 将更新的数据用 key 索引\n for (let i = 0; i < mappingDataArray.length; i++) {\n const mappingData = mappingDataArray[i];\n for (let j = 0; j < mappingData.length; j++) {\n const mappingDatum = mappingData[j];\n const key = this.getElementId(mappingDatum);\n const finalKey = keyDatum.has(key) ? `${key}-${i}-${j}` : key;\n keys.push(finalKey);\n keyDatum.set(finalKey, mappingDatum);\n keyIndex.set(finalKey, index);\n index++;\n }\n }\n\n this.elements = new Array(index);\n\n const { added, updated, removed } = diff(this.lastElementsMap, keys);\n\n // 新建 element\n for (const key of added) {\n const mappingDatum = keyDatum.get(key);\n const i = keyIndex.get(key);\n const element = this.createElement(mappingDatum, i, isUpdate);\n this.elements[i] = element;\n this.elementsMap[key] = element;\n if (element.shape) {\n element.shape.set('zIndex', this.zIndexReversed ? this.elements.length - i : i);\n }\n }\n\n // 更新 element\n for (const key of updated) {\n const element = this.lastElementsMap[key];\n const mappingDatum = keyDatum.get(key);\n const currentShapeCfg = this.getDrawCfg(mappingDatum);\n const preShapeCfg = element.getModel();\n const i = keyIndex.get(key);\n if (this.isCoordinateChanged || isModelChange(currentShapeCfg, preShapeCfg)) {\n element.animate = this.animateOption;\n // 通过绘制数据的变更来判断是否需要更新,因为用户有可能会修改图形属性映射\n element.update(currentShapeCfg); // 更新对应的 element\n }\n this.elements[i] = element;\n this.elementsMap[key] = element;\n if (element.shape) {\n element.shape.set('zIndex', this.zIndexReversed ? this.elements.length - i : i);\n }\n }\n\n // 全部 setZIndex 之后,再执行 sort\n if (this.container) {\n this.container.sort();\n }\n\n // 销毁被删除的 elements\n for (const key of removed) {\n const element = this.lastElementsMap[key];\n // 更新动画配置,用户有可能在更新之前有对动画进行配置操作\n element.animate = this.animateOption;\n element.destroy();\n }\n }\n\n /**\n * 获取渲染的 label 类型。\n */\n protected getLabelType(): string {\n const { labelOption, coordinate, type } = this;\n const { type: coordinateType, isTransposed } = coordinate;\n let labelType = get(labelOption, ['cfg', 'type']);\n if (!labelType) {\n // 用户未定义,则进行默认的逻辑\n if (coordinateType === 'polar') {\n // 极坐标下使用通用的极坐标文本,转置则使用饼图\n labelType = isTransposed ? 'pie' : 'polar';\n } else if (coordinateType === 'theta') {\n // theta 坐标系下使用饼图文本\n labelType = 'pie';\n } else if (type === 'interval' || type === 'polygon') {\n labelType = 'interval';\n } else {\n labelType = 'base';\n }\n }\n\n return labelType;\n }\n\n /**\n * 获取 Y 轴上的最小值。\n */\n protected getYMinValue(): number {\n const yScale = this.getYScale();\n const { min, max } = yScale;\n let value: number;\n\n if (min >= 0) {\n value = min;\n } else if (max <= 0) {\n // 当值全位于负区间时,需要保证 ymin 在区域内,不可为 0\n value = max;\n } else {\n value = 0;\n }\n return value;\n }\n\n // 创建图形属性相关的配置项\n protected createAttrOption(attrName: string, field: AttributeOption | string | number, cfg?) {\n if (isNil(field) || isObject(field)) {\n if (isObject(field) && isEqual(Object.keys(field), ['values'])) {\n // shape({ values: [ 'funnel' ] })\n set(this.attributeOption, attrName, {\n fields: field.values,\n });\n } else {\n set(this.attributeOption, attrName, field);\n }\n } else {\n const attrCfg: AttributeOption = {};\n if (isNumber(field)) {\n // size(3)\n attrCfg.values = [field];\n } else {\n attrCfg.fields = parseFields(field);\n }\n\n if (cfg) {\n if (isFunction(cfg)) {\n attrCfg.callback = cfg;\n } else {\n attrCfg.values = cfg;\n }\n }\n\n set(this.attributeOption, attrName, attrCfg);\n }\n }\n\n protected initAttributes() {\n const { attributes, attributeOption, theme, shapeType } = this;\n this.groupScales = [];\n const tmpMap = {};\n\n // 遍历每一个 attrOption,各自创建 Attribute 实例\n for (const attrType in attributeOption) {\n if (attributeOption.hasOwnProperty(attrType)) {\n const option: AttributeOption = attributeOption[attrType];\n if (!option) {\n return;\n }\n const attrCfg: AttributeInstanceCfg = {\n ...option,\n };\n const { callback, values, fields = [] } = attrCfg;\n\n // 获取每一个字段对应的 scale\n const scales = fields.map((field) => {\n const scale = this.scales[field];\n if (!tmpMap[field] && GROUP_ATTRS.includes(attrType)) {\n const inferedScaleType = inferScaleType(scale, get(this.scaleDefs, field), attrType, this.type);\n if (inferedScaleType === 'cat') {\n this.groupScales.push(scale);\n tmpMap[field] = true;\n }\n }\n return scale;\n });\n\n attrCfg.scales = scales;\n\n if (attrType !== 'position' && scales.length === 1 && scales[0].type === 'identity') {\n // 用户在图形通道上声明了常量字段 color('red'), size(5)\n attrCfg.values = scales[0].values;\n } else if (!callback && !values) {\n // 用户没有指定任何规则,则使用默认的映射规则\n if (attrType === 'size') {\n attrCfg.values = theme.sizes;\n } else if (attrType === 'shape') {\n attrCfg.values = theme.shapes[shapeType] || [];\n } else if (attrType === 'color') {\n if (scales.length) {\n // 根据数值个数使用对应的色板\n attrCfg.values = scales[0].values.length <= 10 ? theme.colors10 : theme.colors20;\n } else {\n attrCfg.values = theme.colors10;\n }\n }\n }\n const AttributeCtor = getAttributeClass(attrType);\n attributes[attrType] = new AttributeCtor(attrCfg);\n }\n }\n }\n\n // 处理数据:分组 -> 数字化 -> adjust 调整\n private processData(data: Data) {\n this.hasSorted = false;\n const { scales } = this.getAttribute('position');\n const categoryScales = scales.filter((scale: Scale) => scale.isCategory);\n\n const groupedArray = this.groupData(data); // 数据分组\n const beforeAdjust = [];\n for (let i = 0, len = groupedArray.length; i < len; i++) {\n const subData = groupedArray[i];\n const arr = [];\n for (let j = 0, subLen = subData.length; j < subLen; j++) {\n const originData = subData[j];\n const item = {};\n // tslint:disable-next-line: forin\n for (const k in originData) {\n item[k] = originData[k];\n }\n item[FIELD_ORIGIN] = originData;\n\n // 将分类数据翻译成数据, 仅对位置相关的度量进行数字化处理\n for (const scale of categoryScales) {\n const field = scale.field;\n item[field] = scale.translate(item[field]);\n }\n arr.push(item);\n }\n beforeAdjust.push(arr);\n }\n\n const dataArray = this.adjustData(beforeAdjust); // 进行 adjust 数据调整\n this.beforeMappingData = dataArray;\n\n return dataArray;\n }\n\n // 调整数据\n private adjustData(dataArray: Data[]): Data[] {\n const adjustOption = this.adjustOption;\n const { intervalPadding, dodgePadding, theme } = this;\n // 兼容theme配置\n const maxColumnWidth = this.maxColumnWidth || theme.maxColumnWidth;\n const minColumnWidth = this.minColumnWidth || theme.minColumnWidth;\n const columnWidthRatio = this.columnWidthRatio || theme.columnWidthRatio;\n let result = dataArray;\n\n if (adjustOption) {\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const xField = xScale.field;\n const yField = yScale ? yScale.field : null;\n const xDimensionLength = getXDimensionLength(this.coordinate);\n const groupNum = xScale.values.length;\n // 传入size计算相关参数,默认宽度、最大最小宽度约束\n const sizeAttr = this.getAttribute('size');\n let defaultSize;\n if (sizeAttr) {\n defaultSize = sizeAttr.values[0];\n }\n for (let i = 0, len = adjustOption.length; i < len; i++) {\n const adjust = adjustOption[i];\n const adjustCfg: AdjustInstanceCfg = {\n xField,\n yField,\n intervalPadding,\n dodgePadding,\n xDimensionLength,\n groupNum,\n defaultSize,\n maxColumnWidth,\n minColumnWidth,\n columnWidthRatio,\n ...adjust,\n };\n const type = adjust.type;\n if (type === 'dodge') {\n const adjustNames = [];\n if (xScale.isCategory || xScale.type === 'identity') {\n adjustNames.push('x');\n } else if (!yScale) {\n adjustNames.push('y');\n } else {\n throw new Error('dodge is not support linear attribute, please use category attribute!');\n }\n adjustCfg.adjustNames = adjustNames;\n // 每个分组内每条柱子的宽度占比,用户不可指定,用户需要通过 columnWidthRatio 指定\n // 兼容theme配置\n adjustCfg.dodgeRatio = columnWidthRatio;\n } else if (type === 'stack') {\n const coordinate = this.coordinate;\n if (!yScale) {\n // 一维的情况下获取高度和默认size\n adjustCfg.height = coordinate.getHeight();\n const size = this.getDefaultValue('size') || 3;\n adjustCfg.size = size;\n }\n // 不进行 transpose 时,用户又没有设置这个参数时,默认从上向下\n if (!coordinate.isTransposed && isNil(adjustCfg.reverseOrder)) {\n adjustCfg.reverseOrder = true;\n }\n }\n const adjustCtor = getAdjustClass(type);\n adjustCfg.dimValuesMap = {};\n //生成dimValuesMap\n if (xScale && xScale.values) {\n adjustCfg.dimValuesMap[xScale.field] = xScale.values.map((v) => xScale.translate(v));\n }\n const adjustInstance = new adjustCtor(adjustCfg);\n\n result = adjustInstance.process(result);\n\n this.adjusts[type] = adjustInstance;\n }\n }\n\n return result;\n }\n\n // 对数据进行分组\n private groupData(data: Data): Data[] {\n const groupScales = this.getGroupScales();\n const scaleDefs = this.scaleDefs;\n const appendConditions = {};\n const groupFields = [];\n for (let index = 0; index < groupScales.length; index++) {\n const scale = groupScales[index];\n const field = scale.field;\n groupFields.push(field);\n if (get(scaleDefs, [field, 'values'])) {\n // 用户通过 view.scale() 接口指定了 values 属性\n appendConditions[field] = scaleDefs[field].values;\n }\n }\n\n return group(data, groupFields, appendConditions);\n }\n\n // 更新发生层叠后的数据对应的度量范围\n private updateStackRange(scale: Scale, dataArray: Data[]) {\n const mergeArray = flatten(dataArray);\n const field = scale.field;\n let min = scale.min;\n let max = scale.max;\n for (let index = 0; index < mergeArray.length; index++) {\n const obj = mergeArray[index];\n const tmpMin = Math.min.apply(null, obj[field]);\n const tmpMax = Math.max.apply(null, obj[field]);\n if (tmpMin < min) {\n min = tmpMin;\n }\n if (tmpMax > max) {\n max = tmpMax;\n }\n }\n const scaleDefs = this.scaleDefs;\n const cfg: LooseObject = {};\n if (min < scale.min && !get(scaleDefs, [field, 'min'])) {\n // 用户如果在列定义中定义了 min,则以用户定义的为准\n cfg.min = min;\n }\n if (max > scale.max && !get(scaleDefs, [field, 'max'])) {\n // 用户如果在列定义中定义了 max\n cfg.max = max;\n }\n\n scale.change(cfg);\n }\n\n // 将数据映射至图形空间前的操作:排序以及关键点的生成\n private beforeMapping(beforeMappingData: Data[]) {\n // 当初加 clone 是因为 points 的引用关系,导致更新失败,可是现在貌似复现不出来了,所以暂时不进行 clone\n // const source = clone(beforeMappingData);\n const source = beforeMappingData;\n if (this.sortable) {\n this.sort(source);\n }\n if (this.generatePoints) {\n // 需要生成关键点\n for (let index = 0, length = source.length; index < length; index++) {\n const currentData = source[index];\n this.generateShapePoints(currentData);\n const nextData = source[index + 1];\n if (nextData) {\n this.generateShapePoints(nextData);\n currentData[0].nextPoints = nextData[0].points;\n }\n }\n }\n\n return source;\n }\n\n // 生成 shape 的关键点\n private generateShapePoints(data: Data) {\n const shapeFactory = this.getShapeFactory();\n const shapeAttr = this.getAttribute('shape');\n for (let index = 0; index < data.length; index++) {\n const obj = data[index];\n const cfg = this.createShapePointsCfg(obj);\n const shape = shapeAttr ? this.getAttributeValues(shapeAttr, obj) : null;\n const points = shapeFactory.getShapePoints(shape, cfg);\n obj.points = points;\n }\n }\n\n // 将数据归一化\n private normalizeValues(values, scale) {\n let rst = [];\n if (isArray(values)) {\n for (let index = 0; index < values.length; index++) {\n const value = values[index];\n rst.push(scale.scale(value));\n }\n } else {\n rst = scale.scale(values);\n }\n return rst;\n }\n\n // 将数据映射至图形空间\n private mapping(data: Data): MappingDatum[] {\n const attributes = this.attributes;\n const mappingData = [];\n for (let index = 0; index < data.length; index++) {\n const record = data[index];\n const newRecord: MappingDatum = {\n _origin: record[FIELD_ORIGIN],\n points: record.points,\n nextPoints: record.nextPoints,\n };\n for (const k in attributes) {\n if (attributes.hasOwnProperty(k)) {\n const attr = attributes[k];\n const names = attr.names;\n const values = this.getAttributeValues(attr, record);\n if (names.length > 1) {\n // position 之类的生成多个字段的属性\n for (let j = 0; j < values.length; j += 1) {\n const val = values[j];\n const name = names[j];\n newRecord[name] = isArray(val) && val.length === 1 ? val[0] : val; // 只有一个值时返回第一个属性值\n }\n } else {\n // values.length === 1 的判断是以下情况,获取用户设置的图形属性值\n // shape('a', ['dot', 'dash']), color('a', ['red', 'yellow'])\n newRecord[names[0]] = values.length === 1 ? values[0] : values;\n }\n }\n }\n\n this.convertPoint(newRecord); // 将 x、y 转换成画布坐标\n mappingData.push(newRecord);\n }\n\n return mappingData;\n }\n\n // 将归一化的坐标值转换成画布坐标\n private convertPoint(mappingRecord: MappingDatum) {\n const { x, y } = mappingRecord;\n\n let rstX;\n let rstY;\n let obj;\n const coordinate = this.coordinate;\n if (isArray(x) && isArray(y)) {\n rstX = [];\n rstY = [];\n for (let i = 0, j = 0, xLen = x.length, yLen = y.length; i < xLen && j < yLen; i += 1, j += 1) {\n obj = coordinate.convert({\n x: x[i],\n y: y[j],\n });\n rstX.push(obj.x);\n rstY.push(obj.y);\n }\n } else if (isArray(y)) {\n rstY = [];\n for (let index = 0; index < y.length; index++) {\n const yVal = y[index];\n obj = coordinate.convert({\n x: x as number,\n y: yVal,\n });\n if (rstX && rstX !== obj.x) {\n if (!isArray(rstX)) {\n rstX = [rstX];\n }\n rstX.push(obj.x);\n } else {\n rstX = obj.x;\n }\n rstY.push(obj.y);\n }\n } else if (isArray(x)) {\n rstX = [];\n for (let index = 0; index < x.length; index++) {\n const xVal = x[index];\n obj = coordinate.convert({\n x: xVal,\n y,\n });\n if (rstY && rstY !== obj.y) {\n if (!isArray(rstY)) {\n rstY = [rstY];\n }\n rstY.push(obj.y);\n } else {\n rstY = obj.y;\n }\n rstX.push(obj.x);\n }\n } else {\n const point = coordinate.convert({\n x,\n y,\n });\n rstX = point.x;\n rstY = point.y;\n }\n mappingRecord.x = rstX;\n mappingRecord.y = rstY;\n }\n\n // 获取 style 配置\n private getStyleCfg(styleOption: StyleOption, originData: Datum) {\n const { fields = [], callback, cfg } = styleOption;\n if (cfg) {\n // 用户直接配置样式属性\n return cfg;\n }\n\n const params = fields.map((field) => {\n return originData[field];\n });\n\n return callback(...params);\n }\n\n private setCfg(cfg: InitCfg) {\n const { coordinate, data, theme, scaleDefs } = cfg;\n if (coordinate) {\n this.coordinate = coordinate;\n }\n if (data) {\n this.data = data;\n }\n if (scaleDefs) {\n this.scaleDefs = scaleDefs;\n this.idFields = [];\n each(scaleDefs, (scaleDef, field) => {\n if (scaleDef && scaleDef.key) {\n this.idFields.push(field);\n }\n });\n }\n if (theme) {\n this.theme = this.userTheme ? deepMix({}, theme, this.userTheme) : theme; // 支持 geometry 层级的主题设置\n }\n }\n\n private async renderLabels(mappingArray: MappingDatum[], isUpdate: boolean = false) {\n let geometryLabel = this.geometryLabel;\n\n this.emit(GEOMETRY_LIFE_CIRCLE.BEFORE_RENDER_LABEL);\n\n if (!geometryLabel) {\n // 初次创建\n const labelType = this.getLabelType();\n const GeometryLabelsCtor = getGeometryLabel(labelType);\n geometryLabel = new GeometryLabelsCtor(this);\n this.geometryLabel = geometryLabel;\n }\n await geometryLabel.render(mappingArray, isUpdate);\n\n // 将 label 同 element 进行关联\n const labelsMap = geometryLabel.labelsRenderer.shapesMap;\n // Store labels for every element.\n const elementLabels = new Map>();\n each(labelsMap, (labelGroup: IGroup, labelGroupId: string) => {\n const labelChildren = labelGroup.getChildren() || [];\n for (let j = 0; j < labelChildren.length; j++) {\n const labelShape = labelChildren[j];\n const element = this.elementsMap[labelShape.get('elementId') || labelGroupId.split(' ')[0]];\n if (element) {\n labelShape.cfg.name = ['element', 'label'];\n labelShape.cfg.element = element;\n const labels = elementLabels.get(element) || new Set();\n labels.add(labelGroup);\n elementLabels.set(element, labels);\n }\n }\n });\n for (const [element, labels] of elementLabels.entries()) {\n element.labelShape = [...labels];\n }\n\n this.emit(GEOMETRY_LIFE_CIRCLE.AFTER_RENDER_LABEL);\n }\n /**\n * 是否需要进行群组入场动画\n * 规则:\n * 1. 如果发生更新,则不进行\n * 2. 如果用户关闭 geometry 动画,则不进行\n * 3. 如果用户关闭了 appear 动画,则不进行\n * 4. 如果用户配置了 appear.animation,则不进行\n */\n private canDoGroupAnimation(isUpdate: boolean) {\n return (\n !isUpdate &&\n this.animateOption &&\n (get(this.animateOption, 'appear') === undefined ||\n (get(this.animateOption, 'appear') && get(this.animateOption, ['appear', 'animation']) === undefined))\n );\n }\n}\n","import { groupToMap } from '@antv/util';\nimport { Data } from '../../interface';\n\n/** @ignore */\nexport function group(data: Data, fields: string[], appendConditions: Record = {}) {\n if (!fields) {\n return [data];\n }\n const groups = groupToMap(data, fields);\n const array = [];\n if (fields.length === 1 && appendConditions[fields[0]]) {\n const values = appendConditions[fields[0]];\n for (const value of values) {\n const arr = groups[`_${value}`];\n if (arr) {\n // 可能存在用户设置 values ,但是数据中没有对应的字段,则这时候 arr 就为 null\n array.push(arr);\n }\n }\n } else {\n for (const k in groups) {\n if (groups.hasOwnProperty(k)) {\n const eachGroup = groups[k];\n array.push(eachGroup);\n }\n }\n }\n\n return array;\n}\n","import { ext } from '@antv/matrix-util';\nimport { IElement, IGroup, IShape } from '../dependents';\n\nconst transform: (m: number[], actions: any[][]) => number[] = ext.transform;\n\nexport { transform };\n\n/**\n * 对元素进行平移操作。\n * @param element 进行变换的元素\n * @param x x 方向位移\n * @param y y 方向位移\n */\nexport function translate(element: IGroup | IShape, x: number, y: number) {\n const matrix = transform(element.getMatrix(), [['t', x, y]]);\n element.setMatrix(matrix);\n}\n\n/**\n * 获取元素旋转矩阵 (以元素的左上角为旋转点)\n * @param element 进行变换的元素\n * @param rotateRadian 旋转弧度\n */\nexport function getRotateMatrix(element: IElement, rotateRadian: number) {\n const { x, y } = element.attr();\n const matrix = transform(element.getMatrix(), [\n ['t', -x, -y],\n ['r', rotateRadian],\n ['t', x, y],\n ]);\n return matrix;\n}\n\n/**\n * 对元素进行旋转操作。\n * @param element 进行变换的元素\n * @param rotateRadian 旋转弧度\n */\nexport function rotate(element: IGroup | IShape, rotateRadian: number) {\n const matrix = getRotateMatrix(element, rotateRadian);\n element.setMatrix(matrix);\n}\n\n/**\n * 获取元矩阵。\n * @returns identity matrix\n */\nexport function getIdentityMatrix(): number[] {\n return [1, 0, 0, 0, 1, 0, 0, 0, 1];\n}\n\n/**\n * 围绕图形中心点进行缩放\n * @param element 进行缩放的图形元素\n * @param ratio 缩放比例\n */\nexport function zoom(element: IGroup | IShape, ratio: number) {\n const bbox = element.getBBox();\n const x = (bbox.minX + bbox.maxX) / 2;\n const y = (bbox.minY + bbox.maxY) / 2;\n element.applyToMatrix([x, y, 1]);\n\n const matrix = transform(element.getMatrix(), [\n ['t', -x, -y],\n ['s', ratio, ratio],\n ['t', x, y],\n ]);\n element.setMatrix(matrix);\n}\n","/**\n * @file utils of label\n */\n\nimport { isNil, isNumber, some } from '@antv/util';\nimport { IElement, IGroup, BBox } from '../../../dependents';\nimport { rotate } from '../../../util/transform';\n\n/**\n * 查找 Label Group 中的文本 shape 对象\n * @param label\n */\nexport function findLabelTextShape(label: IGroup): IElement {\n return label.find((el) => el.get('type') === 'text');\n}\n\n/**\n * 获取标签背景信息: box (无旋转) + rotation (旋转角度)\n */\nexport function getLabelBackgroundInfo(\n labelGroup: IGroup,\n labelItem: { rotate?: number;[key: string]: any },\n padding: number | number[] = [0, 0, 0, 0]\n): { x: number; y: number; width: number; height: number; rotation: number } {\n const content = labelGroup && labelGroup.getChildren()[0];\n if (content) {\n const labelShape = content.clone();\n\n // revert rotate\n if (labelItem?.rotate) {\n rotate(labelShape as IGroup, -labelItem.rotate);\n }\n\n // use `getCanvasBBox`, because if Shape is been translated, `getBBox` is not the actual box position\n const { x, y, width, height } = labelShape.getCanvasBBox();\n\n labelShape.destroy();\n\n let boxPadding = padding;\n if (isNil(boxPadding)) {\n boxPadding = [2, 2, 2, 2];\n } else if (isNumber(boxPadding)) {\n boxPadding = new Array(4).fill(boxPadding);\n }\n\n return {\n x: x - boxPadding[3],\n y: y - boxPadding[0],\n width: width + boxPadding[1] + boxPadding[3],\n height: height + boxPadding[0] + boxPadding[2],\n rotation: labelItem?.rotate || 0,\n };\n }\n\n return { x: 0, y: 0, width: 0, height: 0, rotation: 0 };\n}\n\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\nexport function getOverlapArea(a: BBox, b: BBox, margin = 0) {\n const xOverlap = Math.max(\n 0,\n Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin)\n );\n const yOverlap = Math.max(\n 0,\n Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin)\n );\n\n return xOverlap * yOverlap;\n}\n\n/** 检测是否和已布局的堆叠 */\nexport function checkShapeOverlap(cur: IElement, dones: IElement[]) {\n const box = cur.getBBox();\n return some(dones, (done) => {\n const target = done.getBBox();\n return getOverlapArea(box, target, 2) > 0;\n });\n}\n","import { Coordinate } from '@antv/coord';\nimport { IGroup, IShape } from '@antv/g-base';\nimport { each, get } from '@antv/util';\nimport { doAnimate } from '../animate';\nimport { getReplaceAttrs } from '../util/graphics';\n\n/** label 的必要配置 */\ntype Cfg = {\n data: any;\n origin: any;\n animateCfg: any;\n coordinate: Coordinate;\n};\n\n/**\n * @desc 更新 label (目前没有根据 id 索引,还是会存在一点小问题的,只能根据 idx 索引)\n * @done shape 属性更新\n * @done shape delete\n * @done shape append\n *\n * @param fromShape old labelShape\n * @param toShape new labelShape\n * @param cfg\n */\nexport function updateLabel(fromShape: IGroup, toShape: IGroup, cfg: Cfg): void {\n const { data, origin, animateCfg, coordinate } = cfg;\n const updateAnimateCfg = get(animateCfg, 'update');\n\n fromShape.set('data', data);\n fromShape.set('origin', origin);\n fromShape.set('animateCfg', animateCfg);\n fromShape.set('coordinate', coordinate);\n fromShape.set('visible', toShape.get('visible'));\n\n (fromShape.getChildren() || []).forEach((fromChild, idx) => {\n const toChild = toShape.getChildByIndex(idx) as IShape;\n if (!toChild) {\n fromShape.removeChild(fromChild);\n fromChild.remove(true);\n } else {\n fromChild.set('data', data);\n fromChild.set('origin', origin);\n fromChild.set('animateCfg', animateCfg);\n fromChild.set('coordinate', coordinate);\n\n const newAttrs = getReplaceAttrs(fromChild as IShape, toChild);\n if (updateAnimateCfg) {\n doAnimate(fromChild as IShape, updateAnimateCfg, {\n toAttrs: newAttrs,\n coordinate,\n });\n } else {\n fromChild.attr(newAttrs);\n }\n if (toChild.isGroup()) {\n updateLabel(fromChild as any, toChild as any, cfg);\n }\n }\n });\n\n // append\n each(toShape.getChildren(), (child, idx) => {\n if (idx >= fromShape.getCount()) {\n if (!child.destroyed) {\n fromShape.add(child);\n }\n }\n });\n}\n","import { deepMix, each, get, isArray, isNull } from '@antv/util';\nimport { BBox, Coordinate, IGroup, IShape } from '../dependents';\nimport { LabelItem } from '../geometry/label/interface';\nimport { AnimateOption, GeometryLabelLayoutCfg } from '../interface';\nimport { doAnimate } from '../animate';\nimport { getGeometryLabelLayout } from '../geometry/label';\nimport { getLabelBackgroundInfo } from '../geometry/label/util';\nimport { polarToCartesian } from '../util/graphics';\nimport { rotate, translate } from '../util/transform';\nimport { FIELD_ORIGIN } from '../constant';\nimport { updateLabel } from './update-label';\n\n/**\n * Labels 实例创建时,传入构造函数的参数定义\n */\nexport interface LabelsGroupCfg {\n /** label 容器 */\n container: IGroup;\n /** label 布局配置 */\n layout?: GeometryLabelLayoutCfg | GeometryLabelLayoutCfg[];\n}\n\n/**\n * Geometry labels 渲染组件\n */\nexport default class Labels {\n /** 用于指定 labels 布局的类型 */\n public layout: GeometryLabelLayoutCfg | GeometryLabelLayoutCfg[];\n /** 图形容器 */\n public container: IGroup;\n /** 动画配置 */\n public animate: AnimateOption | false;\n /** label 绘制的区域 */\n public region: BBox;\n\n /** 存储当前 shape 的映射表,键值为 shape id */\n public shapesMap: Record = {};\n\n constructor(cfg: LabelsGroupCfg) {\n const { layout, container } = cfg;\n\n this.layout = layout;\n this.container = container;\n }\n /**\n * 渲染文本\n */\n public async render(items: LabelItem[], shapes: Record, isUpdate: boolean = false) {\n const shapesMap = {};\n const offscreenGroup = this.createOffscreenGroup(); // 创建虚拟分组\n if (items.length) {\n // 如果 items 空的话就不进行绘制调整操作\n // step 1: 在虚拟 group 中创建 shapes\n for (const item of items) {\n if (item) {\n shapesMap[item.id] = this.renderLabel(item, offscreenGroup);\n }\n }\n // [todo] Move layout into Worker.\n // step 2: 根据布局,调整 labels\n await this.doLayout(items, shapes, shapesMap);\n\n // step 3.1: 绘制 labelLine\n this.renderLabelLine(items, shapesMap);\n // step 3.2: 绘制 labelBackground\n this.renderLabelBackground(items, shapesMap);\n // step 4: 根据用户设置的偏移量调整 label\n this.adjustLabel(items, shapesMap);\n }\n\n // 进行添加、更新、销毁操作\n const lastShapesMap = this.shapesMap;\n each(shapesMap, (shape, id) => {\n if (shape.destroyed) {\n // label 在布局调整环节被删除了(doLayout)\n delete shapesMap[id];\n } else {\n if (lastShapesMap[id]) {\n // 图形发生更新\n const data = shape.get('data');\n const origin = shape.get('origin');\n const coordinate = shape.get('coordinate');\n const currentAnimateCfg = shape.get('animateCfg');\n\n const currentShape = lastShapesMap[id]; // 已经在渲染树上的 shape\n updateLabel(currentShape, shapesMap[id], {\n data,\n origin,\n animateCfg: currentAnimateCfg,\n coordinate,\n });\n\n shapesMap[id] = currentShape; // 保存引用\n } else {\n // 新生成的 shape\n // If container has been destroyed, no need to render labels.\n if (this.container.destroyed) return;\n this.container.add(shape);\n const animateCfg = get(shape.get('animateCfg'), isUpdate ? 'enter' : 'appear');\n if (animateCfg) {\n doAnimate(shape, animateCfg, {\n toAttrs: {\n ...shape.attr(),\n },\n coordinate: shape.get('coordinate'),\n });\n }\n }\n delete lastShapesMap[id];\n }\n });\n\n // 移除\n each(lastShapesMap, (deleteShape) => {\n const animateCfg = get(deleteShape.get('animateCfg'), 'leave');\n if (animateCfg) {\n doAnimate(deleteShape, animateCfg, {\n toAttrs: null,\n coordinate: deleteShape.get('coordinate'),\n });\n } else {\n deleteShape.remove(true); // 移除\n }\n });\n\n this.shapesMap = shapesMap;\n offscreenGroup.destroy();\n }\n\n /** 清除当前 labels */\n public clear() {\n this.container.clear();\n this.shapesMap = {};\n }\n\n /** 销毁 */\n public destroy() {\n this.container.destroy();\n this.shapesMap = null;\n }\n\n private renderLabel(cfg: LabelItem, container: IGroup): IGroup {\n const { id, elementId, data, mappingData, coordinate, animate, content, capture } = cfg;\n const shapeAppendCfg = {\n id,\n elementId,\n capture,\n data,\n origin: {\n ...mappingData,\n data: mappingData[FIELD_ORIGIN],\n },\n coordinate,\n };\n const labelGroup = container.addGroup({\n name: 'label',\n // 如果 this.animate === false 或者 cfg.animate === false/null 则不进行动画,否则进行动画配置的合并\n animateCfg:\n this.animate === false || animate === null || animate === false ? false : deepMix({}, this.animate, animate),\n ...shapeAppendCfg,\n });\n let labelShape;\n if ((content.isGroup && content.isGroup()) || (content.isShape && content.isShape())) {\n // 如果 content 是 Group 或者 Shape,根据 textAlign 调整位置后,直接将其加入 labelGroup\n const { width, height } = content.getCanvasBBox();\n const textAlign = get(cfg, 'textAlign', 'left');\n\n let x = cfg.x;\n const y = cfg.y - height / 2;\n\n if (textAlign === 'center') {\n x = x - width / 2;\n } else if (textAlign === 'right' || textAlign === 'end') {\n x = x - width;\n }\n\n translate(content, x, y); // 将 label 平移至 x, y 指定的位置\n labelShape = content;\n labelGroup.add(content);\n } else {\n const fill = get(cfg, ['style', 'fill']);\n labelShape = labelGroup.addShape('text', {\n attrs: {\n x: cfg.x,\n y: cfg.y,\n textAlign: cfg.textAlign,\n textBaseline: get(cfg, 'textBaseline', 'middle'),\n text: cfg.content,\n ...cfg.style,\n fill: isNull(fill) ? cfg.color : fill,\n },\n ...shapeAppendCfg,\n });\n }\n\n if (cfg.rotate) {\n rotate(labelShape, cfg.rotate);\n }\n return labelGroup;\n }\n\n // 根据type对label布局\n private async doLayout(items: LabelItem[], shapes: Record, shapesMap: Record) {\n if (this.layout) {\n const layouts = isArray(this.layout) ? this.layout : [this.layout];\n await Promise.all(layouts.map((layout: GeometryLabelLayoutCfg) => {\n const layoutFn = getGeometryLabelLayout(get(layout, 'type', ''));\n if (!layoutFn) return;\n\n const labelShapes = [];\n const geometryShapes = [];\n each(shapesMap, (labelShape, id) => {\n labelShapes.push(labelShape);\n geometryShapes.push(shapes[labelShape.get('elementId')]);\n });\n // [todo] Refactor more layout into Worker.\n return layoutFn(items, labelShapes, geometryShapes, this.region, layout.cfg);\n }));\n }\n }\n\n private renderLabelLine(labelItems: LabelItem[], shapesMap) {\n each(labelItems, (labelItem) => {\n const coordinate: Coordinate = get(labelItem, 'coordinate');\n if (!labelItem || !coordinate) {\n return;\n }\n const center = coordinate.getCenter();\n const radius = coordinate.getRadius();\n if (!labelItem.labelLine) {\n // labelLine: null | false,关闭 label 对应的 labelLine\n return;\n }\n const labelLineCfg = get(labelItem, 'labelLine', {});\n const id = labelItem.id;\n let path = labelLineCfg.path;\n if (!path) {\n const start = polarToCartesian(center.x, center.y, radius, labelItem.angle);\n path = [\n ['M', start.x, start.y],\n ['L', labelItem.x, labelItem.y],\n ];\n }\n const labelGroup = shapesMap[id];\n if (!labelGroup.destroyed) {\n labelGroup.addShape('path', {\n capture: false, // labelLine 默认不参与事件捕获\n attrs: {\n path,\n stroke: labelItem.color ? labelItem.color : get(labelItem, ['style', 'fill'], '#000'),\n fill: null,\n ...labelLineCfg.style,\n },\n id,\n origin: labelItem.mappingData,\n data: labelItem.data,\n coordinate: labelItem.coordinate,\n });\n }\n });\n }\n\n /**\n * 绘制标签背景\n * @param labelItems\n */\n private renderLabelBackground(labelItems: LabelItem[], shapesMap) {\n each(labelItems, (labelItem) => {\n const coordinate: Coordinate = get(labelItem, 'coordinate');\n const background: LabelItem['background'] = get(labelItem, 'background');\n if (!background || !coordinate) {\n return;\n }\n\n const id = labelItem.id;\n const labelGroup = shapesMap[id];\n if (!labelGroup.destroyed) {\n const labelContentShape = labelGroup.getChildren()[0];\n if (labelContentShape) {\n const { rotation, ...box } = getLabelBackgroundInfo(labelGroup, labelItem, background.padding);\n const backgroundShape = labelGroup.addShape('rect', {\n attrs: {\n ...box,\n ...(background.style || {}),\n },\n id,\n origin: labelItem.mappingData,\n data: labelItem.data,\n coordinate: labelItem.coordinate,\n });\n backgroundShape.setZIndex(-1);\n\n if (rotation) {\n const matrix = labelContentShape.getMatrix();\n backgroundShape.setMatrix(matrix);\n }\n }\n }\n });\n }\n\n private createOffscreenGroup() {\n const container = this.container;\n const GroupClass = container.getGroupBase(); // 获取分组的构造函数\n const newGroup = new GroupClass({});\n return newGroup;\n }\n\n private adjustLabel(items: LabelItem[], shapesMap) {\n each(items, (item) => {\n if (item) {\n const id = item.id;\n const labelGroup = shapesMap[id];\n if (!labelGroup.destroyed) {\n // fix: 如果说开发者的 label content 是一个 group,此处的偏移无法对 整个 content group 生效;场景类似 饼图 spider label 是一个含 2 个 textShape 的 gorup\n const labelShapes = labelGroup.findAll((ele) => ele.get('type') !== 'path');\n each(labelShapes, (labelShape) => {\n if (labelShape) {\n if (item.offsetX) {\n labelShape.attr('x', labelShape.attr('x') + item.offsetX);\n }\n if (item.offsetY) {\n labelShape.attr('y', labelShape.attr('y') + item.offsetY);\n }\n }\n });\n }\n }\n });\n }\n}\n","import { deepMix, each, get, isArray, isFunction, isNil, isNumber, isString, isUndefined } from '@antv/util';\n\nimport { FIELD_ORIGIN } from '../../constant';\nimport { Scale } from '../../dependents';\nimport { Datum, LabelOption, MappingDatum, Point } from '../../interface';\nimport { LabelCfg, LabelItem, LabelPointCfg, TextAlign } from './interface';\n\nimport { getDefaultAnimateCfg } from '../../animate';\nimport { getPolygonCentroid } from '../../util/graphics';\n\nimport Labels from '../../component/labels';\nimport Geometry from '../base';\nimport Element from '../element';\n\nexport type GeometryLabelConstructor = new (cfg: any) => GeometryLabel;\n\nfunction avg(arr: number[]) {\n let sum = 0;\n each(arr, (value: number) => {\n sum += value;\n });\n return sum / arr.length;\n}\n\n/**\n * Geometry Label 基类,用于生成 Geometry 下所有 label 的配置项信息\n */\nexport default class GeometryLabel {\n /** geometry 实例 */\n public readonly geometry: Geometry;\n public labelsRenderer: Labels;\n /** 默认的布局 */\n public defaultLayout: string;\n\n constructor(geometry: Geometry) {\n this.geometry = geometry;\n }\n\n public getLabelItems(mapppingArray: MappingDatum[]): LabelItem[] {\n const items = [];\n const labelCfgs = this.getLabelCfgs(mapppingArray);\n // 获取 label 相关的 x,y 的值,获取具体的 x, y,防止存在数组\n each(mapppingArray, (mappingData: MappingDatum, index: number) => {\n const labelCfg = labelCfgs[index];\n if (!labelCfg || isNil(mappingData.x) || isNil(mappingData.y)) {\n items.push(null);\n return;\n }\n\n const labelContent = !isArray(labelCfg.content) ? [labelCfg.content] : labelCfg.content;\n labelCfg.content = labelContent;\n const total = labelContent.length;\n each(labelContent, (content, subIndex) => {\n if (isNil(content) || content === '') {\n items.push(null);\n return;\n }\n\n const item = {\n ...labelCfg,\n ...this.getLabelPoint(labelCfg, mappingData, subIndex),\n };\n if (!item.textAlign) {\n item.textAlign = this.getLabelAlign(item, subIndex, total);\n }\n\n if (item.offset <= 0) {\n item.labelLine = null;\n }\n\n items.push(item);\n });\n });\n return items;\n }\n\n public async render(mappingArray: MappingDatum[], isUpdate: boolean = false) {\n const labelItems = this.getLabelItems(mappingArray);\n const labelsRenderer = this.getLabelsRenderer();\n const shapes = this.getGeometryShapes();\n // 渲染文本\n await labelsRenderer.render(labelItems, shapes, isUpdate);\n }\n\n public clear() {\n const labelsRenderer = this.labelsRenderer;\n if (labelsRenderer) {\n labelsRenderer.clear();\n }\n }\n\n public destroy() {\n const labelsRenderer = this.labelsRenderer;\n if (labelsRenderer) {\n labelsRenderer.destroy();\n }\n this.labelsRenderer = null;\n }\n\n // geometry 更新之后,对应的 Coordinate 也会更新,为了获取到最新鲜的 Coordinate,故使用方法获取\n public getCoordinate() {\n return this.geometry.coordinate;\n }\n\n /**\n * 获取 label 的默认配置\n */\n protected getDefaultLabelCfg(offset?: number, position?: string) {\n const geometry = this.geometry;\n const { type, theme } = geometry;\n\n if (\n type === 'polygon' ||\n (type === 'interval' && position === 'middle') ||\n (offset < 0 && !['line', 'point', 'path'].includes(type))\n ) {\n // polygon 或者 (interval 且 middle) 或者 offset 小于 0 时,文本展示在图形内部,将其颜色设置为 白色\n return get(theme, 'innerLabels', {});\n }\n\n return get(theme, 'labels', {});\n }\n\n /**\n * 获取当前 label 的最终配置\n * @param labelCfg\n */\n protected getThemedLabelCfg(labelCfg: LabelCfg) {\n const geometry = this.geometry;\n const defaultLabelCfg = this.getDefaultLabelCfg();\n const { type, theme } = geometry;\n let themedLabelCfg;\n\n if (type === 'polygon' || (labelCfg.offset < 0 && !['line', 'point', 'path'].includes(type))) {\n // polygon 或者 offset 小于 0 时,文本展示在图形内部,将其颜色设置为 白色\n themedLabelCfg = deepMix({}, defaultLabelCfg, theme.innerLabels, labelCfg);\n } else {\n themedLabelCfg = deepMix({}, defaultLabelCfg, theme.labels, labelCfg);\n }\n\n return themedLabelCfg;\n }\n\n /**\n * 设置 label 位置\n * @param labelPointCfg\n * @param mappingData\n * @param index\n * @param position\n */\n protected setLabelPosition(\n labelPointCfg: LabelPointCfg,\n mappingData: MappingDatum,\n index: number,\n position: string\n ) {}\n\n /**\n * @desc 获取 label offset\n */\n protected getLabelOffset(offset: number | string): number {\n const coordinate = this.getCoordinate();\n const vector = this.getOffsetVector(offset);\n return coordinate.isTransposed ? vector[0] : vector[1];\n }\n\n /**\n * 获取每个 label 的偏移量 (矢量)\n * @param labelCfg\n * @param index\n * @param total\n * @return {Point} offsetPoint\n */\n protected getLabelOffsetPoint(labelCfg: LabelCfg, index: number, total: number): Point {\n const offset = labelCfg.offset;\n const coordinate = this.getCoordinate();\n const transposed = coordinate.isTransposed;\n const dim = transposed ? 'x' : 'y';\n const factor = transposed ? 1 : -1; // y 方向上越大,像素的坐标越小,所以transposed时将系数变成\n const offsetPoint = {\n x: 0,\n y: 0,\n };\n if (index > 0 || total === 1) {\n // 判断是否小于0\n offsetPoint[dim] = offset * factor;\n } else {\n offsetPoint[dim] = offset * factor * -1;\n }\n return offsetPoint;\n }\n\n /**\n * 获取每个 label 的位置\n * @param labelCfg\n * @param mappingData\n * @param index\n * @returns label point\n */\n protected getLabelPoint(labelCfg: LabelCfg, mappingData: MappingDatum, index: number): LabelPointCfg {\n const coordinate = this.getCoordinate();\n const total = labelCfg.content.length;\n\n function getDimValue(value: number | number[], idx: number, isAvg = false) {\n let v = value;\n if (isArray(v)) {\n if (labelCfg.content.length === 1) {\n if (isAvg) {\n v = avg(v);\n } else {\n // 如果仅一个 label,多个 y, 取最后一个 y\n if (v.length <= 2) {\n v = v[(value as number[]).length - 1];\n } else {\n v = avg(v);\n }\n }\n } else {\n v = v[idx];\n }\n }\n return v;\n }\n\n const label = {\n content: labelCfg.content[index],\n x: 0,\n y: 0,\n start: { x: 0, y: 0 },\n color: '#fff',\n };\n const shape = isArray(mappingData.shape) ? mappingData.shape[0] : mappingData.shape;\n const isFunnel = shape === 'funnel' || shape === 'pyramid';\n\n // 多边形场景,多用于地图\n if (this.geometry.type === 'polygon') {\n const centroid = getPolygonCentroid(mappingData.x, mappingData.y);\n label.x = centroid[0];\n label.y = centroid[1];\n } else if (this.geometry.type === 'interval' && !isFunnel) {\n // 对直方图的label X 方向的位置居中\n label.x = getDimValue(mappingData.x, index, true);\n label.y = getDimValue(mappingData.y, index);\n } else {\n label.x = getDimValue(mappingData.x, index);\n label.y = getDimValue(mappingData.y, index);\n }\n\n // 处理漏斗图文本位置\n if (isFunnel) {\n const nextPoints = get(mappingData, 'nextPoints');\n const points = get(mappingData, 'points');\n if (nextPoints) {\n // 非漏斗图底部\n const point1 = coordinate.convert(points[1] as Point);\n const point2 = coordinate.convert(nextPoints[1] as Point);\n label.x = (point1.x + point2.x) / 2;\n label.y = (point1.y + point2.y) / 2;\n } else if (shape === 'pyramid') {\n const point1 = coordinate.convert(points[1] as Point);\n const point2 = coordinate.convert(points[2] as Point);\n label.x = (point1.x + point2.x) / 2;\n label.y = (point1.y + point2.y) / 2;\n }\n }\n\n if (labelCfg.position) {\n // 如果 label 支持 position 属性\n this.setLabelPosition(label, mappingData, index, labelCfg.position);\n }\n const offsetPoint = this.getLabelOffsetPoint(labelCfg, index, total);\n label.start = { x: label.x, y: label.y };\n label.x += offsetPoint.x;\n label.y += offsetPoint.y;\n label.color = mappingData.color;\n return label;\n }\n\n /**\n * 获取文本的对齐方式\n * @param item\n * @param index\n * @param total\n * @returns\n */\n protected getLabelAlign(item: LabelItem, index: number, total: number): TextAlign {\n let align: TextAlign = 'center';\n const coordinate = this.getCoordinate();\n if (coordinate.isTransposed) {\n const offset = item.offset;\n if (offset < 0) {\n align = 'right';\n } else if (offset === 0) {\n align = 'center';\n } else {\n align = 'left';\n }\n if (total > 1 && index === 0) {\n if (align === 'right') {\n align = 'left';\n } else if (align === 'left') {\n align = 'right';\n }\n }\n }\n return align;\n }\n\n /**\n * 获取每一个 label 的唯一 id\n * @param mappingData label 对应的图形的绘制数据\n */\n protected getLabelId(mappingData: MappingDatum) {\n const geometry = this.geometry;\n const type = geometry.type;\n const xScale = geometry.getXScale();\n const yScale = geometry.getYScale();\n const origin = mappingData[FIELD_ORIGIN]; // 原始数据\n\n let labelId = geometry.getElementId(mappingData);\n if (type === 'line' || type === 'area') {\n // 折线图以及区域图,一条线会对应一组数据,即多个 labels,为了区分这些 labels,需要在 line id 的前提下加上 x 字段值\n labelId += ` ${origin[xScale.field]}`;\n } else if (type === 'path') {\n // path 路径图,无序,有可能存在相同 x 不同 y 的情况,需要通过 x y 来确定唯一 id\n labelId += ` ${origin[xScale.field]}-${origin[yScale.field]}`;\n }\n\n return labelId;\n }\n\n // 获取 labels 组件\n private getLabelsRenderer() {\n const { labelsContainer, labelOption, canvasRegion, animateOption } = this.geometry;\n const coordinate = this.geometry.coordinate;\n\n let labelsRenderer = this.labelsRenderer;\n if (!labelsRenderer) {\n labelsRenderer = new Labels({\n container: labelsContainer,\n layout: get(labelOption, ['cfg', 'layout'], {\n type: this.defaultLayout,\n }),\n });\n this.labelsRenderer = labelsRenderer;\n }\n labelsRenderer.region = canvasRegion;\n // 设置动画配置,如果 geometry 的动画关闭了,那么 label 的动画也会关闭\n labelsRenderer.animate = animateOption ? getDefaultAnimateCfg('label', coordinate) : false;\n\n return labelsRenderer;\n }\n\n private getLabelCfgs(mapppingArray: MappingDatum[]): LabelCfg[] {\n const geometry = this.geometry;\n const { labelOption, scales, coordinate } = geometry;\n const { fields, callback, cfg } = labelOption as LabelOption;\n const labelScales = fields.map((field: string) => {\n return scales[field];\n });\n\n const labelCfgs: LabelCfg[] = [];\n each(mapppingArray, (mappingData: MappingDatum, index: number) => {\n const origin = mappingData[FIELD_ORIGIN]; // 原始数据\n const originText = this.getLabelText(origin, labelScales);\n let callbackCfg;\n if (callback) {\n // 当同时配置了 callback 和 cfg 时,以 callback 为准\n const originValues = fields.map((field: string) => origin[field]);\n callbackCfg = callback(...originValues);\n if (isNil(callbackCfg)) {\n labelCfgs.push(null);\n return;\n }\n }\n\n let labelCfg = {\n id: this.getLabelId(mappingData), // 进行 ID 标记\n elementId: this.geometry.getElementId(mappingData), // label 对应 Element 的 ID\n data: origin, // 存储原始数据\n mappingData, // 存储映射后的数据,\n coordinate, // 坐标系\n ...cfg,\n ...callbackCfg,\n };\n\n if (isFunction(labelCfg.position)) {\n labelCfg.position = labelCfg.position(origin, mappingData, index);\n }\n\n const offset = this.getLabelOffset(labelCfg.offset || 0);\n // defaultCfg 需要判断 innerLabels & labels\n const defaultLabelCfg = this.getDefaultLabelCfg(offset, labelCfg.position);\n // labelCfg priority: defaultCfg < cfg < callbackCfg\n labelCfg = deepMix({}, defaultLabelCfg, labelCfg);\n // 获取最终的 offset\n labelCfg.offset = this.getLabelOffset(labelCfg.offset || 0);\n\n const content = labelCfg.content;\n if (isFunction(content)) {\n labelCfg.content = content(origin, mappingData, index);\n } else if (isUndefined(content)) {\n // 用户未配置 content,则默认为映射的第一个字段的值\n labelCfg.content = originText[0];\n }\n\n labelCfgs.push(labelCfg);\n });\n\n return labelCfgs;\n }\n\n private getLabelText(origin: Datum, scales: Scale[]) {\n const labelTexts = [];\n each(scales, (scale: Scale) => {\n let value = origin[scale.field];\n if (isArray(value)) {\n value = value.map((subVal) => {\n return scale.getText(subVal);\n });\n } else {\n value = scale.getText(value);\n }\n\n if (isNil(value) || value === '') {\n labelTexts.push(null);\n } else {\n labelTexts.push(value);\n }\n });\n return labelTexts;\n }\n\n private getOffsetVector(offset: number | string = 0) {\n const coordinate = this.getCoordinate();\n let actualOffset = 0;\n if (isNumber(offset)) {\n actualOffset = offset;\n }\n // 如果 x,y 翻转,则偏移 x,否则偏移 y\n return coordinate.isTransposed ? coordinate.applyMatrix(actualOffset, 0) : coordinate.applyMatrix(0, actualOffset);\n }\n\n private getGeometryShapes() {\n const geometry = this.geometry;\n const shapes = {};\n each(geometry.elementsMap, (element: Element, id: string) => {\n shapes[id] = element.shape;\n });\n // 因为有可能 shape 还在进行动画,导致 shape.getBBox() 获取到的值不是最终态,所以需要从 offscreenGroup 获取\n each(geometry.getOffscreenGroup().getChildren(), (child) => {\n const id = geometry.getElementId(child.get('origin').mappingData);\n shapes[id] = child;\n });\n\n return shapes;\n }\n}\n","import { Attribute } from '../dependents';\n\n/**\n * @ignore\n * get the mapping value by attribute, if mapping value is nil, return def\n * @param attr\n * @param value\n * @param def\n * @returns get mapping value\n */\nexport function getMappingValue(attr: Attribute, value: any, def: string): string {\n if (!attr) {\n return def;\n }\n\n let r;\n // 多参数映射,阻止程序报错\n if (attr.callback && attr.callback.length > 1) {\n const restArgs = Array(attr.callback.length - 1).fill('');\n r = attr.mapping(value, ...restArgs).join('');\n } else {\n r = attr.mapping(value).join('');\n }\n\n return r || def;\n}\n","/** @ignore */\nexport const MarkerSymbols = {\n hexagon: (x: number, y: number, r: number) => {\n const diffX = (r / 2) * Math.sqrt(3);\n return [\n ['M', x, y - r],\n ['L', x + diffX, y - r / 2],\n ['L', x + diffX, y + r / 2],\n ['L', x, y + r],\n ['L', x - diffX, y + r / 2],\n ['L', x - diffX, y - r / 2],\n ['Z'],\n ];\n },\n bowtie: (x: number, y: number, r: number) => {\n const diffY = r - 1.5;\n return [['M', x - r, y - diffY], ['L', x + r, y + diffY], ['L', x + r, y - diffY], ['L', x - r, y + diffY], ['Z']];\n },\n cross: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y - r],\n ['L', x + r, y + r],\n ['M', x + r, y - r],\n ['L', x - r, y + r],\n ];\n },\n tick: (x: number, y: number, r: number) => {\n return [\n ['M', x - r / 2, y - r],\n ['L', x + r / 2, y - r],\n ['M', x, y - r],\n ['L', x, y + r],\n ['M', x - r / 2, y + r],\n ['L', x + r / 2, y + r],\n ];\n },\n plus: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ['M', x, y - r],\n ['L', x, y + r],\n ];\n },\n hyphen: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n line: (x: number, y: number, r: number) => {\n return [\n ['M', x, y - r],\n ['L', x, y + r],\n ];\n },\n};\n","import { LegendMarkerCfg } from '@antv/component';\nimport { deepMix, isString, each, get, isFunction } from '@antv/util';\nimport View from '../chart/view';\nimport { DIRECTION } from '../constant';\nimport { Attribute, ShapeAttrs, Tick } from '../dependents';\nimport Geometry from '../geometry/base';\nimport { LegendCfg, LegendItem, MarkerCfg } from '../interface';\nimport { getMappingValue } from './attr';\nimport { omit } from './helper';\nimport { MarkerSymbols } from './marker';\n\n/** 线条形 marker symbol */\nconst STROKES_SYMBOLS = ['line', 'cross', 'tick', 'plus', 'hyphen'];\n\n/**\n * 处理用户配置的 marker style\n * @param markerStyle\n * @param userMarker.style\n * @returns {ShapeAttrs} newStyle\n */\nfunction handleUserMarkerStyle(markerStyle: ShapeAttrs, style: MarkerCfg['style']): ShapeAttrs {\n if (isFunction(style)) {\n return style(markerStyle);\n }\n return deepMix({}, markerStyle, style);\n}\n\n/**\n * 根据 marker 是否为线条形 symbol, 来调整下样式\n * @param symbol\n * @param style\n * @param color\n */\nfunction adpatorMarkerStyle(marker: LegendMarkerCfg, color: string): void {\n const symbol = marker.symbol;\n if (isString(symbol) && STROKES_SYMBOLS.indexOf(symbol) !== -1) {\n const markerStyle = get(marker, 'style', {});\n const lineWidth = get(markerStyle, 'lineWidth', 1);\n const stroke = markerStyle.stroke || markerStyle.fill || color;\n marker.style = deepMix({}, marker.style, { lineWidth, stroke, fill: null });\n }\n}\n\n/**\n * 设置 marker 的 symbol,将 字符串的 symbol 转换为真正的绘制命令\n * @param marker\n */\nfunction setMarkerSymbol(marker: LegendMarkerCfg): void {\n const symbol = marker.symbol;\n if (isString(symbol) && MarkerSymbols[symbol]) {\n marker.symbol = MarkerSymbols[symbol];\n }\n}\n\n/**\n * @ignore\n * get the legend layout from direction\n * @param direction\n * @returns layout 'horizontal' | 'vertical'\n */\nexport function getLegendLayout(direction: DIRECTION): 'vertical' | 'horizontal' {\n return direction.startsWith(DIRECTION.LEFT) || direction.startsWith(DIRECTION.RIGHT) ? 'vertical' : 'horizontal';\n}\n\n/** item of @antv/component legend */\ntype ComponentLegendItem = Omit & {\n marker: any;\n};\n\n/**\n * @ignore\n * get the legend items\n * @param view\n * @param geometry\n * @param attr\n * @param themeMarker\n * @param markerCfg\n * @returns legend items\n */\nexport function getLegendItems(\n view: View,\n geometry: Geometry,\n attr: Attribute,\n themeMarker: object,\n userMarker: LegendCfg['marker']\n): ComponentLegendItem[] {\n const scale = attr.getScale(attr.type);\n if (scale.isCategory) {\n const field = scale.field;\n const colorAttr = geometry.getAttribute('color');\n const shapeAttr = geometry.getAttribute('shape');\n const defaultColor = view.getTheme().defaultColor;\n const isInPolar = geometry.coordinate.isPolar;\n\n return scale.getTicks().map((tick: Tick, index: number) => {\n const { text, value: scaleValue } = tick;\n const name = text;\n const value = scale.invert(scaleValue);\n\n // 通过过滤图例项的数据,来看是否 unchecked\n let unchecked = view.filterFieldData(field, [{ [field]: value }]).length === 0;\n each(view.views, (subView) => {\n if (!subView.filterFieldData(field, [{ [field]: value }]).length) {\n unchecked = true;\n }\n });\n\n // @ts-ignore\n const color = getMappingValue(colorAttr, value, defaultColor);\n const shape = getMappingValue(shapeAttr, value, 'point');\n let marker = geometry.getShapeMarker(shape, {\n color,\n isInPolar,\n });\n\n let markerCfg = userMarker;\n if (isFunction(markerCfg)) {\n markerCfg = markerCfg(name, index, { name, value, ...deepMix({}, themeMarker, marker) });\n }\n\n // the marker configure order should be ensure\n marker = deepMix({}, themeMarker, marker, omit({ ...markerCfg }, ['style']));\n adpatorMarkerStyle(marker, color);\n if (markerCfg && markerCfg.style) {\n // handle user's style settings\n marker.style = handleUserMarkerStyle(marker.style, markerCfg.style);\n }\n setMarkerSymbol(marker);\n\n return { id: value, name, value, marker, unchecked };\n });\n }\n return [];\n}\n\n/**\n *\n * @ignore\n * custom legend 的 items 获取\n * @param themeMarker\n * @param userMarker\n * @param customItems\n */\nexport function getCustomLegendItems(themeMarker: object, userMarker: object, customItems: LegendItem[]) {\n // 如果有自定义的 item,那么就直接使用,并合并主题的 marker 配置\n return customItems.map((item: LegendItem, index: number) => {\n let markerCfg = userMarker;\n if (isFunction(markerCfg)) {\n markerCfg = markerCfg(item.name, index, deepMix({}, themeMarker, item));\n }\n\n const itemMarker = isFunction(item.marker)\n ? item.marker(item.name, index, deepMix({}, themeMarker, item))\n : item.marker;\n\n const marker = deepMix({}, themeMarker, markerCfg, itemMarker);\n setMarkerSymbol(marker);\n\n item.marker = marker;\n return item;\n });\n}\n\n/**\n * get the legend cfg from theme, will mix the common cfg of legend theme\n *\n * @param theme view theme object\n * @param direction legend direction\n * @returns legend theme cfg\n */\nexport function getLegendThemeCfg(theme: object, direction: string): object {\n const legendTheme = get(theme, ['components', 'legend'], {});\n return deepMix({}, get(legendTheme, ['common'], {}), deepMix({}, get(legendTheme, [direction], {})));\n}\n","import { isArray } from '@antv/util';\nimport { PathCommand } from '../../../dependents';\nimport { Point, RangePoint, ShapeVertices } from '../../../interface';\nimport { getSplinePath } from './path';\n\nfunction isValueEmpty(value) {\n if (value) {\n return false;\n }\n return value === null || value === undefined || isNaN(value);\n}\n\nfunction isYNil(point: Point[] | RangePoint) {\n if (isArray(point)) {\n // 特殊处理 area 的关键点数据,其关键点结构为 [{x: 0, y: 1}, {x: 0, y: 2}]\n return isValueEmpty(point[1].y);\n }\n const value = point.y;\n return isArray(value) ? isValueEmpty(value[0]) : isValueEmpty(value);\n}\n\n/**\n * @ignore\n * 分割数据,用于处理在一组点数据中,y 对应的数值存在 null/undefined/NaN 的情况\n * 应用于折线图、区域图以及路径图\n *\n * ```typescript\n * // return [[{x: 1, y: 2}, {x: 3, y: 3}]]\n * getPathPoints([{x: 1, y: 2}, {x: 2, y: null}, {x: 3, y: 3}], true);\n * // return [[{x: 1, y: 2}], [{x: 3, y: 3}]]\n * getPathPoints([{x: 1, y: 2}, {x: 2, y: null}, {x: 3, y: 3}], false);\n * // return [[[{ x: 1, y: 10 }, { x: 2, y: 2 }], [{ x: 9, y: 34 }, { x: 1, y: 1 }]]]\n * getPathPoints([\n * [{ x: 1, y: 10 }, { x: 2, y: 2 }],\n * [{ x: 4, y: 2 }, { x: 8, y: NaN }],\n * [{ x: 9, y: 34 }, { x: 1, y: 1 }],\n * ], true);\n * ```\n *\n * @param points 要进行处理点集合\n * @param connectNulls 是否连接空值数据\n * @param showSinglePoint 是否展示孤立点\n * @returns 返回处理后的点集合\n */\nexport function getPathPoints(points: ShapeVertices, connectNulls: boolean = false, showSinglePoint: boolean = true) {\n if (!points.length || (points.length === 1 && !showSinglePoint)) {\n // 空或者只有一个点并配置不展示时\n return [];\n }\n\n if (connectNulls) {\n // 即 y 值为空的场景\n const filtered = [];\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (!isYNil(point)) {\n filtered.push(point);\n }\n }\n return [filtered];\n }\n\n const result = [];\n let tmp = [];\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n if (isYNil(point)) {\n if (tmp.length) {\n if (!(tmp.length === 1 && !showSinglePoint)) {\n // 如果前段数据只有一个字段并且不需要展示时则不加入\n result.push(tmp);\n }\n tmp = [];\n }\n } else {\n tmp.push(point);\n }\n }\n\n if (tmp.length) {\n result.push(tmp);\n }\n return result;\n}\n\n/**\n * 获取小提琴图的边界 path\n * @param points\n * @returns\n */\nexport function getViolinPath(points: ShapeVertices): PathCommand[] {\n const path = [];\n for (let i = 0; i < points.length; i++) {\n const point = points[i] as Point;\n if (point) {\n const action = i === 0 ? 'M' : 'L';\n path.push([action, point.x, point.y]);\n }\n }\n const first = points[0] as Point;\n if (first) {\n path.push(['L', first.x, first.y]);\n path.push(['z']);\n }\n return path;\n}\n\n/**\n * 获取小提琴图 平滑的边界 path\n * @param points\n * @returns\n */\nexport function getSmoothViolinPath(points: ShapeVertices): PathCommand[] {\n const half = points.length / 2;\n const leftPoints = [];\n const rightPoints = [];\n for (let i = 0; i < points.length; i++) {\n if (i < half) {\n leftPoints.push(points[i]);\n } else {\n rightPoints.push(points[i]);\n }\n }\n const leftPath = getSplinePath(leftPoints, false);\n const rightPath = getSplinePath(rightPoints, false);\n if (rightPoints.length) {\n leftPath.push(['L', rightPoints[0].x, rightPoints[0].y]);\n }\n rightPath.shift();\n const path = leftPath.concat(rightPath);\n if (leftPoints.length) {\n path.push(['L', leftPoints[0].x, leftPoints[0].y]);\n }\n path.push(['z']);\n return path;\n}\n","import { deepMix, isNil, get } from '@antv/util';\nimport { ShapeInfo } from '../../../interface';\n\n/**\n * @ignore\n * 获取 Shape 的图形属性\n * @param cfg\n * @param isStroke 是否需要描边\n * @param isFill 是否需要填充\n * @param [sizeName] 可选,表示图形大小的属性,lineWidth 或者 r\n * @returns\n */\nexport function getStyle(cfg: ShapeInfo, isStroke: boolean, isFill: boolean, sizeName: string = '') {\n const { style = {}, defaultStyle, color, size } = cfg;\n const attrs = {\n ...defaultStyle,\n ...style,\n };\n if (color) {\n if (isStroke) {\n if (!style.stroke) {\n // 如果用户在 style() 中配置了 stroke,则以用户配置的为准\n attrs.stroke = color;\n }\n }\n\n if (isFill) {\n if (!style.fill) {\n // 如果用户在 style() 中配置了 fill\n attrs.fill = color;\n }\n }\n }\n if (sizeName && isNil(style[sizeName]) && !isNil(size)) {\n // 如果用户在 style() 中配置了 lineWidth 或者 r 属性\n attrs[sizeName] = size;\n }\n\n return attrs;\n}\n\n/**\n * 获取 矩形背景 的样式\n * @param cfg\n */\nexport function getBackgroundRectStyle(cfg?: ShapeInfo) {\n return deepMix(\n {},\n {\n // 默认背景色,copy from active-region\n fill: '#CCD6EC',\n fillOpacity: 0.3,\n },\n get(cfg, ['background', 'style'])\n );\n}\n","import { isArray } from '@antv/util';\nimport { Point, RangePoint } from '../../../interface';\n\n/**\n * @ignore\n * 拆分点数据\n * @example\n * // result: [{x: 20, y: 20}, {x: 20, y: 30}]\n * splitPoints({x: 20,y: [20, 30]});\n * @example\n * // result: [{x: 20, y: 20}, {x: 30, y: 30}]\n * splitPoints({x: [20, 30],y: [20, 30]});\n * @param obj\n */\nexport function splitPoints(obj: RangePoint): Point[] {\n // y 有可能是数组,对应原始数据中 y 为一个区间数据,如 [19, 30],为了统一也将 x 转换为数组\n const x = obj.x;\n const y = isArray(obj.y) ? obj.y : [obj.y];\n\n return y.map((eachY, index) => {\n return {\n x: isArray(x) ? x[index] : x,\n y: eachY,\n };\n });\n}\n","import { ShapeMarkerCfg } from '../../../interface';\n\nconst LineSymbols = {\n line: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n dot: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n dash: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['L', x + r, y],\n ];\n },\n smooth: (x: number, y: number, r: number) => {\n return [\n ['M', x - r, y],\n ['A', r / 2, r / 2, 0, 1, 1, x, y],\n ['A', r / 2, r / 2, 0, 1, 0, x + r, y],\n ];\n },\n hv: (x: number, y: number, r: number) => {\n return [\n ['M', x - r - 1, y - 2.5],\n ['L', x, y - 2.5],\n ['L', x, y + 2.5],\n ['L', x + r + 1, y + 2.5],\n ];\n },\n vh: (x: number, y: number, r: number) => {\n return [\n ['M', x - r - 1, y + 2.5],\n ['L', x, y + 2.5],\n ['L', x, y - 2.5],\n ['L', x + r + 1, y - 2.5],\n ];\n },\n hvh: (x: number, y: number, r: number) => {\n return [\n ['M', x - (r + 1), y + 2.5],\n ['L', x - r / 2, y + 2.5],\n ['L', x - r / 2, y - 2.5],\n ['L', x + r / 2, y - 2.5],\n ['L', x + r / 2, y + 2.5],\n ['L', x + r + 1, y + 2.5],\n ];\n },\n vhv: (x: number, y: number) => {\n // 宽 13px,高 8px\n return [\n ['M', x - 5, y + 2.5],\n ['L', x - 5, y],\n ['L', x, y],\n ['L', x, y - 3],\n ['L', x, y + 3],\n ['L', x + 6.5, y + 3],\n ];\n },\n};\n\n/**\n * Gets line marker\n * @ignore\n * @param markerCfg\n * @param shapeType\n * @returns 返回 Line 的 marker 配置\n */\nexport function getLineMarker(markerCfg: ShapeMarkerCfg, shapeType: string) {\n const { color } = markerCfg;\n return {\n symbol: LineSymbols[shapeType],\n style: {\n lineWidth: 2,\n r: 6,\n stroke: color,\n },\n };\n}\n","import { each, isArray } from '@antv/util';\nimport { IGroup, ShapeAttrs } from '../../../dependents';\nimport { Point, Position, RangePoint, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath, getSplinePath } from '../util/path';\nimport { splitPoints } from '../util/split-points';\nimport { getLineMarker } from './util';\n\nfunction getShapeAttrs(cfg: ShapeInfo, smooth?: boolean, constraint?: Position[]) {\n const { isStack, connectNulls, isInCircle, showSinglePoint } = cfg;\n const shapeAttrs = getStyle(cfg, true, false, 'lineWidth');\n\n const points = getPathPoints(cfg.points, connectNulls, showSinglePoint); // 根据 connectNulls 值处理 points\n let path = [];\n for (let i = 0, len = points.length; i < len; i++) {\n const eachLinePoints = points[i];\n path = path.concat(getPath(eachLinePoints, isInCircle, isStack, smooth, constraint, shapeAttrs));\n }\n shapeAttrs.path = path;\n\n return shapeAttrs;\n}\n\n// 单条 path\nfunction getSinglePath(\n points: Point[],\n isInCircle: boolean,\n smooth?: boolean,\n constraint?: Position[],\n style?: ShapeAttrs\n) {\n if (points.length === 1) {\n // 只有一个点时\n return [\n ['M', points[0].x, points[0].y - style.lineWidth / 2],\n ['L', points[0].x, points[0].y],\n ['L', points[0].x, points[0].y + style.lineWidth / 2],\n ];\n }\n\n let path;\n if (!smooth) {\n path = getLinePath(points, false);\n if (isInCircle) {\n path.push(['Z']);\n }\n } else {\n // 直角坐标系下绘制曲线时限制最大值、最小值\n if (isInCircle && points.length) {\n points.push({ x: points[0].x, y: points[0].y });\n }\n path = getSplinePath(points, false, constraint);\n }\n\n return path;\n}\n\nfunction getRangePath(\n points: RangePoint[],\n isInCircle: boolean,\n isStack?: boolean,\n smooth?: boolean,\n constraint?: Position[],\n style?: ShapeAttrs\n) {\n const topPoints = [];\n const bottomPoints = [];\n each(points, (point: RangePoint) => {\n const result = splitPoints(point);\n topPoints.push(result[1]); // 上边\n bottomPoints.push(result[0]); // 底边\n });\n\n const topPath = getSinglePath(topPoints, isInCircle, smooth, constraint, style);\n const bottomPath = getSinglePath(bottomPoints, isInCircle, smooth, constraint, style);\n if (isStack) {\n return topPath;\n }\n return topPath.concat(bottomPath);\n}\n\n/**\n * 获取折线图 path\n */\nexport function getPath(\n points: Point[] | RangePoint[],\n isInCircle: boolean,\n isStack?: boolean,\n smooth?: boolean,\n constraint?: Position[],\n style?: ShapeAttrs\n) {\n if (points.length) {\n const first = points[0];\n\n return isArray(first.y)\n ? getRangePath(points as RangePoint[], isInCircle, isStack, smooth, constraint, style)\n : getSinglePath(points as Point[], isInCircle, smooth, constraint, style);\n }\n return [];\n}\n\nconst LineShapeFactory = registerShapeFactory('line', {\n defaultShapeType: 'line',\n});\n\n// 这里因为代码公用,所以直接全部注册\n// 'line' 默认折线;'dot' 点线 ···;'dash' 断线 - - -\neach(['line', 'dot', 'dash', 'smooth'], (shapeType) => {\n registerShape('line', shapeType, {\n draw(cfg: ShapeInfo, container: IGroup) {\n const smooth = shapeType === 'smooth';\n let constraint;\n if (smooth) {\n const { start, end } = this.coordinate;\n constraint = [\n [start.x, end.y],\n [end.x, start.y],\n ];\n }\n\n const attrs = getShapeAttrs(cfg, smooth, constraint);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'line',\n capture: !smooth,\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return getLineMarker(markerCfg, shapeType);\n },\n });\n});\n\nexport default LineShapeFactory;\n","/* G2 的一个壳子,不包含 Geometry,由开发者自己定义和引入 */\n\nexport const VERSION = '4.2.10';\n\n// 核心基类导出\nexport { Chart, View, Event } from './chart'; // Chart, View 类\nexport { Controller as ComponentController } from './chart/controller/base'; // G2 组件基类\nexport { default as TooltipController } from './chart/controller/tooltip'; // G2 tooltip 组件基类\nexport { default as Geometry } from './geometry/base'; // Geometry 基类\nexport { default as Element } from './geometry/element'; // Element 类\nexport { default as GeometryLabel } from './geometry/label/base'; // Geometry Label 基类\nexport { Interaction, Action } from './interaction'; // Interaction, Action 基类\nexport { Facet } from './facet'; // Facet 基类\nexport { default as InteractionAction } from './interaction/action/base'; // Interaction Action 基类\n\n// 注册 ComponentController\nexport { registerComponentController } from './chart';\n\n// 注册 Geometry\nexport { registerGeometry } from './chart';\n\n// 注册 Geometry Shape\nexport { registerShape, registerShapeFactory, getShapeFactory } from './geometry/shape/base';\n\n// 注册 Geometry label 以及 Geometry Label 布局函数\nexport {\n registerGeometryLabel,\n registerGeometryLabelLayout,\n getGeometryLabel,\n getGeometryLabelLayout,\n} from './geometry/label';\n\n// 注册 interaction\nexport { getInteraction, registerInteraction, registerAction, getActionClass } from './interaction';\n\n// 注册 facet\nexport { getFacet, registerFacet } from './facet';\n\n// 注册主题\nexport { getTheme, registerTheme } from './theme';\n\n// G engine 管理相关\nexport { registerEngine, getEngine } from './engine';\n\n// 注册动画函数\nexport { registerAnimation, getAnimation } from './animate/animation';\n\nexport { LAYER, DIRECTION } from './constant';\n\n// 因为 typescript 部分版本不支持 export * as 语法。\nimport * as Types from './interface';\nexport type { Types };\n\nexport { IGroup, ShapeAttrs, Coordinate, Scale, ScaleConfig } from './dependents';\n\n// 一些工具方法导出\nimport { getMappingValue } from './util/attr';\nimport { getLegendItems } from './util/legend';\nimport { getAngle, getSectorPath, polarToCartesian } from './util/graphics';\nimport { rotate, transform, translate, zoom } from './util/transform';\nimport { getTooltipItems } from './util/tooltip';\nimport { getDelegationObject } from './interaction/action/util';\nimport { getPathPoints } from './geometry/shape/util/get-path-points';\nimport { getPath } from './geometry/shape/line';\n\nexport const Util = {\n getLegendItems,\n translate,\n rotate,\n zoom,\n transform,\n getAngle,\n getSectorPath,\n polarToCartesian,\n getDelegationObject,\n getTooltipItems,\n getMappingValue,\n // shape 的一些操作方法\n getPath,\n getPathPoints,\n};\n","import { StyleSheetCfg } from '../../interface';\n\nconst WHITE_COLORS = {\n 100: '#000',\n 95: '#0D0D0D',\n 85: '#262626',\n 65: '#595959',\n 45: '#8C8C8C',\n 25: '#BFBFBF',\n 15: '#D9D9D9',\n 6: '#F0F0F0',\n};\n\nconst BLACK_COLORS = {\n 100: '#FFFFFF',\n 95: '#F2F2F2',\n 85: '#D9D9D9',\n 65: '#A6A6A6',\n 45: '#737373',\n 25: '#404040',\n 15: '#262626',\n 6: '#0F0F0F',\n};\n\nconst QUALITATIVE_10 = [\n '#5B8FF9',\n '#5AD8A6',\n '#5D7092',\n '#F6BD16',\n '#E86452',\n '#6DC8EC',\n '#945FB9',\n '#FF9845',\n '#1E9493',\n '#FF99C3',\n];\n\nconst QUALITATIVE_20 = [\n '#5B8FF9',\n '#CDDDFD',\n '#5AD8A6',\n '#CDF3E4',\n '#5D7092',\n '#CED4DE',\n '#F6BD16',\n '#FCEBB9',\n '#E86452',\n '#F8D0CB',\n '#6DC8EC',\n '#D3EEF9',\n '#945FB9',\n '#DECFEA',\n '#FF9845',\n '#FFE0C7',\n '#1E9493',\n '#BBDEDE',\n '#FF99C3',\n '#FFE0ED',\n];\n\n/** 单色顺序色板 */\nconst SINGLE_SEQUENCE = [\n '#B8E1FF',\n '#9AC5FF',\n '#7DAAFF',\n '#5B8FF9',\n '#3D76DD',\n '#085EC0',\n '#0047A5',\n '#00318A',\n '#001D70',\n];\n\nexport const createDarkStyleSheet = (cfg: StyleSheetCfg = {}) => {\n const { paletteQualitative10 = QUALITATIVE_10, paletteQualitative20 = QUALITATIVE_20 } = cfg;\n const { brandColor = paletteQualitative10[0] } = cfg;\n\n const token = {\n /** 图表背景色 */\n backgroundColor: '#141414',\n /** 主题色 */\n brandColor,\n /** 图表辅助色 */\n subColor: 'rgba(255,255,255,0.05)',\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10,\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20,\n /** 语义色 */\n paletteSemanticRed: '#F4664A',\n /** 语义色 */\n paletteSemanticGreen: '#30BF78',\n /** 语义色 */\n paletteSemanticYellow: '#FAAD14',\n /** (单色)顺序色板 */\n paletteSequence: SINGLE_SEQUENCE,\n /** 字体 */\n fontFamily: `\"Segoe UI\", Roboto, \"Helvetica Neue\", Arial,\n \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\",\n \"Noto Color Emoji\"`,\n\n // -------------------- 坐标轴 --------------------\n /** 坐标轴线颜色 */\n axisLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴线粗细 */\n axisLineBorder: 1,\n /** 坐标轴线 lineDash 设置 */\n axisLineDash: null,\n\n /** 坐标轴标题颜色 */\n axisTitleTextFillColor: BLACK_COLORS[65],\n /** 坐标轴标题文本字体大小 */\n axisTitleTextFontSize: 12,\n /** 坐标轴标题文本行高 */\n axisTitleTextLineHeight: 12,\n /** 坐标轴标题文本字体粗细 */\n axisTitleTextFontWeight: 'normal',\n /** 坐标轴标题距离坐标轴文本的间距 */\n axisTitleSpacing: 12,\n /** 坐标轴标题详细说明icon颜色 */\n axisDescriptionIconFillColor: WHITE_COLORS[85],\n\n /** 坐标轴刻度线颜色 */\n axisTickLineBorderColor: BLACK_COLORS[25],\n /** 坐标轴刻度线长度 */\n axisTickLineLength: 4,\n /** 坐标轴刻度线粗细 */\n axisTickLineBorder: 1,\n\n /** 坐标轴次刻度线颜色 */\n axisSubTickLineBorderColor: BLACK_COLORS[15],\n /** 坐标轴次刻度线长度 */\n axisSubTickLineLength: 2,\n /** 坐标轴次刻度线粗细 */\n axisSubTickLineBorder: 1,\n\n /** 坐标轴刻度文本颜色 */\n axisLabelFillColor: BLACK_COLORS[45],\n /** 坐标轴刻度文本字体大小 */\n axisLabelFontSize: 12,\n /** 坐标轴刻度文本行高 */\n axisLabelLineHeight: 12,\n /** 坐标轴刻度文本字体粗细 */\n axisLabelFontWeight: 'normal',\n /** 坐标轴刻度文本距离坐标轴线的间距 */\n axisLabelOffset: 8,\n\n /** 坐标轴网格线颜色 */\n axisGridBorderColor: BLACK_COLORS[15],\n /** 坐标轴网格线粗细 */\n axisGridBorder: 1,\n /** 坐标轴网格线虚线设置 */\n axisGridLineDash: null,\n\n // -------------------- 图例 --------------------\n /** 图例标题颜色 */\n legendTitleTextFillColor: BLACK_COLORS[45],\n /** 图例标题文本字体大小 */\n legendTitleTextFontSize: 12,\n /** 图例标题文本行高 */\n legendTitleTextLineHeight: 21,\n /** 图例标题文本字体粗细 */\n legendTitleTextFontWeight: 'normal',\n\n /** 图例 marker 颜色 */\n legendMarkerColor: QUALITATIVE_10[0],\n /** 图例 marker 距离图例文本的间距 */\n legendMarkerSpacing: 8,\n /** 图例 marker 默认半径大小 */\n legendMarkerSize: 4,\n /** 图例 'circle' marker 半径 */\n legendCircleMarkerSize: 4,\n /** 图例 'square' marker 半径 */\n legendSquareMarkerSize: 4,\n /** 图例 'line' marker 半径 */\n legendLineMarkerSize: 5,\n\n /** 图例项文本颜色 */\n legendItemNameFillColor: BLACK_COLORS[65],\n /** 图例项文本字体大小 */\n legendItemNameFontSize: 12,\n /** 图例项文本行高 */\n legendItemNameLineHeight: 12,\n /** 图例项粗细 */\n legendItemNameFontWeight: 'normal',\n /** 图例项之间的水平间距 */\n legendItemSpacing: 24,\n /** 图例项垂直方向的间隔 */\n legendItemMarginBottom: 12,\n /** 图例与图表绘图区域的偏移距离 */\n legendSpacing: 16,\n /** 图例与图表绘图区域的偏移距离 */\n legendPadding: [8, 8, 8, 8],\n /** 水平布局的图例与绘图区域偏移距离 */\n legendHorizontalPadding: [8, 0, 8, 0],\n /** 垂直布局的图例与绘图区域偏移距离 */\n legendVerticalPadding: [0, 8, 0, 8],\n\n // 图例分页器\n /** 图例分页器 marker 大小 */\n legendPageNavigatorMarkerSize: 12,\n /** 图例分页器 marker 填充色 */\n legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[45],\n /** 图例分页器 marker 填充色透明度 */\n legendPageNavigatorMarkerInactiveFillOpacity: 0.45,\n /** 图例分页器 marker 激活状态填充色 */\n legendPageNavigatorMarkerFillColor: BLACK_COLORS[45],\n /** 图例分页器 marker 激活状态填充色透明度 */\n legendPageNavigatorMarkerFillOpacity: 1,\n /** 图例分页器文本颜色 */\n legendPageNavigatorTextFillColor: BLACK_COLORS[65],\n /** 图例分页器文本字体大小 */\n legendPageNavigatorTextFontSize: 12,\n\n /** 连续图例滑块填充色 */\n sliderRailFillColor: BLACK_COLORS[15],\n /** 连续图例滑块边框粗细 */\n sliderRailBorder: 0,\n /** 连续图例滑块边框颜色 */\n sliderRailBorderColor: null,\n /** 连续图例滑块宽度 */\n sliderRailWidth: 100,\n /** 连续图例滑块高度 */\n sliderRailHeight: 12,\n\n /** 连续图例文本颜色 */\n sliderLabelTextFillColor: BLACK_COLORS[45],\n /** 连续图例文本字体大小 */\n sliderLabelTextFontSize: 12,\n /** 连续图例文本行高 */\n sliderLabelTextLineHeight: 12,\n /** 连续图例文本字体粗细 */\n sliderLabelTextFontWeight: 'normal',\n\n /** 连续图例滑块颜色 */\n sliderHandlerFillColor: WHITE_COLORS[6],\n /** 连续图例滑块宽度 */\n sliderHandlerWidth: 10,\n /** 连续图例滑块高度 */\n sliderHandlerHeight: 14,\n /** 连续图例滑块边框粗细 */\n sliderHandlerBorder: 1,\n /** 连续图例滑块边框颜色 */\n sliderHandlerBorderColor: WHITE_COLORS[25],\n\n // -------------------- Annotation,图形标注 --------------------\n /** arc 图形标注描边颜色 */\n annotationArcBorderColor: BLACK_COLORS[15],\n /** arc 图形标注粗细 */\n annotationArcBorder: 1,\n\n /** line 图形标注颜色 */\n annotationLineBorderColor: BLACK_COLORS[25],\n /** line 图形标注粗细 */\n annotationLineBorder: 1,\n /** lube 图形标注的虚线间隔 */\n annotationLineDash: null,\n\n /** text 图形标注文本颜色 */\n annotationTextFillColor: BLACK_COLORS[65],\n /** text 图形标注文本字体大小 */\n annotationTextFontSize: 12,\n /** text 图形标注文本行高 */\n annotationTextLineHeight: 12,\n /** text 图形标注文本字体粗细 */\n annotationTextFontWeight: 'normal',\n /** text 图形标注文本边框颜色 */\n annotationTextBorderColor: null,\n /** text 图形标注文本边框粗细 */\n annotationTextBorder: 0,\n\n /** region 图形标注填充颜色 */\n annotationRegionFillColor: BLACK_COLORS[100],\n /** region 图形标注填充颜色透明色 */\n annotationRegionFillOpacity: 0.06,\n /** region 图形标注描边粗细 */\n annotationRegionBorder: 0,\n /** region 图形标注描边颜色 */\n annotationRegionBorderColor: null,\n\n /** dataMarker 图形标注线的长度 */\n annotationDataMarkerLineLength: 16,\n\n // -------------------- Tooltip --------------------\n /** tooltip crosshairs 辅助线颜色 */\n tooltipCrosshairsBorderColor: BLACK_COLORS[25],\n /** tooltip crosshairs 辅助线粗细 */\n tooltipCrosshairsBorder: 1,\n /** tooltip crosshairs 辅助线虚线间隔 */\n tooltipCrosshairsLineDash: null,\n\n /** tooltip 内容框背景色 */\n tooltipContainerFillColor: '#1f1f1f',\n tooltipContainerFillOpacity: 0.95,\n /** tooltip 内容框阴影 */\n tooltipContainerShadow: '0px 2px 4px rgba(0,0,0,.5)',\n /** tooltip 内容框圆角 */\n tooltipContainerBorderRadius: 3,\n\n /** tooltip 文本颜色 */\n tooltipTextFillColor: BLACK_COLORS[65],\n /** tooltip 文本字体大小 */\n tooltipTextFontSize: 12,\n /** tooltip 文本行高 */\n tooltipTextLineHeight: 12,\n /** tooltip 文本字体粗细 */\n tooltipTextFontWeight: 'bold',\n\n // -------------------- Geometry labels --------------------\n /** Geometry label 文本颜色 */\n labelFillColor: BLACK_COLORS[65],\n labelFillColorDark: '#2c3542',\n labelFillColorLight: '#ffffff',\n /** Geometry label 文本字体大小 */\n labelFontSize: 12,\n /** Geometry label 文本行高 */\n labelLineHeight: 12,\n /** Geometry label 文本字体粗细 */\n labelFontWeight: 'normal',\n /** Geometry label 文本描边颜色 */\n labelBorderColor: null,\n /** Geometry label 文本描边粗细 */\n labelBorder: 0,\n\n /** Geometry innerLabel 文本颜色 */\n innerLabelFillColor: WHITE_COLORS[100],\n /** Geometry innerLabel 文本字体大小 */\n innerLabelFontSize: 12,\n /** Geometry innerLabel 文本行高 */\n innerLabelLineHeight: 12,\n /** Geometry innerLabel 文本字体粗细 */\n innerLabelFontWeight: 'normal',\n /** Geometry innerLabel 文本描边颜色 */\n innerLabelBorderColor: null,\n /** Geometry innerLabel 文本描边粗细 */\n innerLabelBorder: 0,\n\n /** Geometry label 文本颜色 */\n overflowLabelFillColor: BLACK_COLORS[65],\n overflowLabelFillColorDark: '#2c3542',\n overflowLabelFillColorLight: '#ffffff',\n /** Geometry label 文本字体大小 */\n overflowLabelFontSize: 12,\n /** Geometry label 文本行高 */\n overflowLabelLineHeight: 12,\n /** Geometry label 文本字体粗细 */\n overflowLabelFontWeight: 'normal',\n /** Geometry label 文本描边颜色 */\n overflowLabelBorderColor: WHITE_COLORS[100],\n /** Geometry label 文本描边粗细 */\n overflowLabelBorder: 1,\n\n /** Geometry label 文本连接线粗细 */\n labelLineBorder: 1,\n /** Geometry label 文本连接线颜色 */\n labelLineBorderColor: BLACK_COLORS[25],\n\n // -------------------- Slider 组件样式--------------------\n /** slider 滑道高度 */\n cSliderRailHieght: 16,\n /** slider 滑道背景色 */\n cSliderBackgroundFillColor: '#416180',\n /** slider 滑道背景色透明度 */\n cSliderBackgroundFillOpacity: 0.05,\n /** slider 滑道前景色 */\n cSliderForegroundFillColor: '#5B8FF9',\n /** slider 滑道前景色透明度 */\n cSliderForegroundFillOpacity: 0.15,\n // slider handlerStyle 手柄样式\n /** slider 手柄高度 */\n cSliderHandlerHeight: 24,\n /** Slider 手柄宽度 */\n cSliderHandlerWidth: 10,\n /** Slider 手柄背景色 */\n cSliderHandlerFillColor: '#F7F7F7',\n /** Slider 手柄背景色透明度 */\n cSliderHandlerFillOpacity: 1,\n /** Slider 手柄高亮背景色 */\n cSliderHandlerHighlightFillColor: '#FFF',\n /** Slider 手柄边框色 */\n cSliderHandlerBorderColor: '#BFBFBF',\n /** Slider 手柄边框粗细 */\n cSliderHandlerBorder: 1,\n /** Slider 手柄边框圆角 */\n cSliderHandlerBorderRadius: 2,\n // slider textStyle 字体标签样式\n /** Slider 字体标签颜色 */\n cSliderTextFillColor: '#fff',\n /** Slider 字体标签透明度 */\n cSliderTextFillOpacity: 0.45,\n /** Slider 字体标签大小 */\n cSliderTextFontSize: 12,\n /** Slider 字体标签行高 */\n cSliderTextLineHeight: 12,\n /** Slider 字体标签字重 */\n cSliderTextFontWeight: 'normal',\n /** Slider 字体标签描边色 */\n cSliderTextBorderColor: null,\n /** Slider 字体标签描边粗细 */\n cSliderTextBorder: 0,\n\n // -------------------- Scrollbar 组件样式--------------------\n /** 滚动条 滚道填充色 */\n scrollbarTrackFillColor: 'rgba(255,255,255,0.65)',\n /** 滚动条 滑块填充色 */\n scrollbarThumbFillColor: 'rgba(0,0,0,0.35)',\n /** 滚动条 滑块高亮填充色 */\n scrollbarThumbHighlightFillColor: 'rgba(0,0,0,0.45)',\n\n // -------------------- Geometry 图形样式--------------------\n /** 点图填充颜色 */\n pointFillColor: QUALITATIVE_10[0],\n /** 点图填充颜色透明度 */\n pointFillOpacity: 0.95,\n /** 点图大小 */\n pointSize: 4,\n /** 点图描边粗细 */\n pointBorder: 1,\n /** 点图描边颜色 */\n pointBorderColor: WHITE_COLORS[100],\n /** 点图描边透明度 */\n pointBorderOpacity: 1,\n\n /** 点图 active 状态下描边颜色 */\n pointActiveBorderColor: BLACK_COLORS[100],\n\n /** 点图 selected 状态下描边粗细 */\n pointSelectedBorder: 2,\n /** 点图 selected 状态下描边颜色 */\n pointSelectedBorderColor: BLACK_COLORS[100],\n\n /** 点图 inactive 状态下填充颜色透明度 */\n pointInactiveFillOpacity: 0.3,\n /** 点图 inactive 状态下描边透明度 */\n pointInactiveBorderOpacity: 0.3,\n\n /** 空心点图大小 */\n hollowPointSize: 4,\n /** 空心点图描边粗细 */\n hollowPointBorder: 1,\n /** 空心点图描边颜色 */\n hollowPointBorderColor: QUALITATIVE_10[0],\n /** 空心点图描边透明度 */\n hollowPointBorderOpacity: 0.95,\n hollowPointFillColor: WHITE_COLORS[100],\n\n /** 空心点图 active 状态下描边粗细 */\n hollowPointActiveBorder: 1,\n /** 空心点图 active 状态下描边颜色 */\n hollowPointActiveBorderColor: BLACK_COLORS[100],\n /** 空心点图 active 状态下描边透明度 */\n hollowPointActiveBorderOpacity: 1,\n\n /** 空心点图 selected 状态下描边粗细 */\n hollowPointSelectedBorder: 2,\n /** 空心点图 selected 状态下描边颜色 */\n hollowPointSelectedBorderColor: BLACK_COLORS[100],\n /** 空心点图 selected 状态下描边透明度 */\n hollowPointSelectedBorderOpacity: 1,\n\n /** 空心点图 inactive 状态下描边透明度 */\n hollowPointInactiveBorderOpacity: 0.3,\n\n /** 线图粗细 */\n lineBorder: 2,\n /** 线图颜色 */\n lineBorderColor: QUALITATIVE_10[0],\n /** 线图透明度 */\n lineBorderOpacity: 1,\n\n /** 线图 Active 状态下粗细 */\n lineActiveBorder: 3,\n\n /** 线图 selected 状态下粗细 */\n lineSelectedBorder: 3,\n\n /** 线图 inactive 状态下透明度 */\n lineInactiveBorderOpacity: 0.3,\n\n /** area 填充颜色 */\n areaFillColor: QUALITATIVE_10[0],\n /** area 填充透明度 */\n areaFillOpacity: 0.25,\n\n /** area 在 active 状态下的填充透明度 */\n areaActiveFillColor: QUALITATIVE_10[0],\n areaActiveFillOpacity: 0.5,\n\n /** area 在 selected 状态下的填充透明度 */\n areaSelectedFillColor: QUALITATIVE_10[0],\n areaSelectedFillOpacity: 0.5,\n\n /** area inactive 状态下填充透明度 */\n areaInactiveFillOpacity: 0.3,\n\n /** hollowArea 颜色 */\n hollowAreaBorderColor: QUALITATIVE_10[0],\n /** hollowArea 边框粗细 */\n hollowAreaBorder: 2,\n /** hollowArea 边框透明度 */\n hollowAreaBorderOpacity: 1,\n\n /** hollowArea active 状态下的边框粗细 */\n hollowAreaActiveBorder: 3,\n hollowAreaActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowArea selected 状态下的边框粗细 */\n hollowAreaSelectedBorder: 3,\n hollowAreaSelectedBorderColor: BLACK_COLORS[100],\n\n /** hollowArea inactive 状态下的边框透明度 */\n hollowAreaInactiveBorderOpacity: 0.3,\n\n /** interval 填充颜色 */\n intervalFillColor: QUALITATIVE_10[0],\n /** interval 填充透明度 */\n intervalFillOpacity: 0.95,\n\n /** interval active 状态下边框粗细 */\n intervalActiveBorder: 1,\n /** interval active 状态下边框颜色 */\n intervalActiveBorderColor: BLACK_COLORS[100],\n intervalActiveBorderOpacity: 1,\n\n /** interval selected 状态下边框粗细 */\n intervalSelectedBorder: 2,\n /** interval selected 状态下边框颜色 */\n intervalSelectedBorderColor: BLACK_COLORS[100],\n /** interval selected 状态下边框透明度 */\n intervalSelectedBorderOpacity: 1,\n\n /** interval inactive 状态下边框透明度 */\n intervalInactiveBorderOpacity: 0.3,\n /** interval inactive 状态下填充透明度 */\n intervalInactiveFillOpacity: 0.3,\n\n /** interval 边框粗细 */\n hollowIntervalBorder: 2,\n /** hollowInterval 边框颜色 */\n hollowIntervalBorderColor: QUALITATIVE_10[0],\n /** hollowInterval 边框透明度 */\n hollowIntervalBorderOpacity: 1,\n hollowIntervalFillColor: WHITE_COLORS[100],\n\n /** hollowInterval active 状态下边框粗细 */\n hollowIntervalActiveBorder: 2,\n /** hollowInterval active 状态下边框颜色 */\n hollowIntervalActiveBorderColor: BLACK_COLORS[100],\n\n /** hollowInterval selected 状态下边框粗细 */\n hollowIntervalSelectedBorder: 3,\n /** hollowInterval selected 状态下边框颜色 */\n hollowIntervalSelectedBorderColor: BLACK_COLORS[100],\n /** hollowInterval selected 状态下边框透明度 */\n hollowIntervalSelectedBorderOpacity: 1,\n\n /** hollowInterval inactive 状态下边框透明度 */\n hollowIntervalInactiveBorderOpacity: 0.3,\n };\n\n return { ...token, ...cfg };\n};\n\nexport const antvDark = createDarkStyleSheet();\n","export function getPixelRatio() {\n return window ? window.devicePixelRatio : 1;\n}\n\n/**\n * 两点之间的距离\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n */\nexport function distance(x1: number, y1: number, x2: number, y2: number) {\n const dx = x1 - x2;\n const dy = y1 - y2;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\n/**\n * 是否在包围盒内\n * @param {number} minX 包围盒开始的点 x\n * @param {number} minY 包围盒开始的点 y\n * @param {number} width 宽度\n * @param {number} height 高度\n * @param {[type]} x 检测点的 x\n * @param {[type]} y 监测点的 y\n */\nexport function inBox(minX: number, minY: number, width: number, height: number, x, y) {\n return x >= minX && x <= minX + width && y >= minY && y <= minY + height;\n}\n\nexport function intersectRect(box1, box2) {\n return !(box2.minX > box1.maxX || box2.maxX < box1.minX || box2.minY > box1.maxY || box2.maxY < box1.minY);\n}\n\n// 合并两个区域\nexport function mergeRegion(region1, region2) {\n if (!region1 || !region2) {\n return region1 || region2;\n }\n return {\n minX: Math.min(region1.minX, region2.minX),\n minY: Math.min(region1.minY, region2.minY),\n maxX: Math.max(region1.maxX, region2.maxX),\n maxY: Math.max(region1.maxY, region2.maxY),\n };\n}\n\n/**\n * 判断两个点是否重合,点坐标的格式为 [x, y]\n * @param {Array} point1 第一个点\n * @param {Array} point2 第二个点\n */\nexport function isSamePoint(point1, point2) {\n return point1[0] === point2[0] && point1[1] === point2[1];\n}\n\nexport {\n isNil,\n isString,\n isFunction,\n isArray,\n each,\n toRadian,\n mod,\n isNumberEqual,\n requestAnimationFrame,\n clearAnimationFrame,\n} from '@antv/util';\n","import { IElement } from '@antv/g-base';\nimport { isString, each, isArray } from './util';\n\nconst regexLG = /^l\\s*\\(\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nconst regexRG = /^r\\s*\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nconst regexPR = /^p\\s*\\(\\s*([axyn])\\s*\\)\\s*(.*)/i;\nconst regexColorStop = /[\\d.]+:(#[^\\s]+|[^\\)]+\\))/gi;\n\nfunction addStop(steps, gradient) {\n const arr: string[] = steps.match(regexColorStop);\n each(arr, (item) => {\n const itemArr = item.split(':');\n gradient.addColorStop(itemArr[0], itemArr[1]);\n });\n}\n/**\n * 将边和填充设置的颜色转换成线性渐变对象\n * @param {CanvasRenderingContext2D} context canvas 上下文\n * @param {IElement} element 图形元素\n * @param {string} gradientStr 颜色\n * @returns {any} 渐变对象\n */\nexport function parseLineGradient(context: CanvasRenderingContext2D, element: IElement, gradientStr: string) {\n const arr = regexLG.exec(gradientStr);\n const angle = (parseFloat(arr[1]) % 360) * (Math.PI / 180);\n const steps = arr[2];\n const box = element.getBBox();\n let start;\n let end;\n\n if (angle >= 0 && angle < (1 / 2) * Math.PI) {\n start = {\n x: box.minX,\n y: box.minY,\n };\n end = {\n x: box.maxX,\n y: box.maxY,\n };\n } else if ((1 / 2) * Math.PI <= angle && angle < Math.PI) {\n start = {\n x: box.maxX,\n y: box.minY,\n };\n end = {\n x: box.minX,\n y: box.maxY,\n };\n } else if (Math.PI <= angle && angle < (3 / 2) * Math.PI) {\n start = {\n x: box.maxX,\n y: box.maxY,\n };\n end = {\n x: box.minX,\n y: box.minY,\n };\n } else {\n start = {\n x: box.minX,\n y: box.maxY,\n };\n end = {\n x: box.maxX,\n y: box.minY,\n };\n }\n\n const tanTheta = Math.tan(angle);\n const tanTheta2 = tanTheta * tanTheta;\n\n const x = (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.x;\n const y = (tanTheta * (end.x - start.x + tanTheta * (end.y - start.y))) / (tanTheta2 + 1) + start.y;\n const gradient = context.createLinearGradient(start.x, start.y, x, y);\n addStop(steps, gradient);\n return gradient;\n}\n\n/**\n * 将边和填充设置的颜色转换成圆形渐变对象\n * @param {CanvasRenderingContext2D} context canvas 上下文\n * @param {IElement} element 图形元素\n * @param {string} gradientStr 颜色\n * @returns {any} 渐变对象\n */\nexport function parseRadialGradient(context: CanvasRenderingContext2D, element: IElement, gradientStr: string) {\n const arr = regexRG.exec(gradientStr);\n const fx = parseFloat(arr[1]);\n const fy = parseFloat(arr[2]);\n const fr = parseFloat(arr[3]);\n const steps = arr[4];\n // 环半径为0时,默认无渐变,取渐变序列的最后一个颜色\n if (fr === 0) {\n const colors = steps.match(regexColorStop);\n return colors[colors.length - 1].split(':')[1];\n }\n const box = element.getBBox();\n const width = box.maxX - box.minX;\n const height = box.maxY - box.minY;\n const r = Math.sqrt(width * width + height * height) / 2;\n const gradient = context.createRadialGradient(\n box.minX + width * fx,\n box.minY + height * fy,\n 0,\n box.minX + width / 2,\n box.minY + height / 2,\n fr * r\n );\n addStop(steps, gradient);\n return gradient;\n}\n\n/**\n * 边和填充设置的颜色转换成 pattern\n * @param {CanvasRenderingContext2D} context canvas 上下文\n * @param {IElement} element 图形元素\n * @param {string} patternStr 生成 pattern 的字符串\n */\nexport function parsePattern(context: CanvasRenderingContext2D, element: IElement, patternStr: string) {\n // 在转换过程中进行了缓存\n if (element.get('patternSource') && element.get('patternSource') === patternStr) {\n return element.get('pattern');\n }\n let pattern;\n let img;\n const arr = regexPR.exec(patternStr);\n let repeat = arr[1];\n const source = arr[2];\n\n // Function to be called when pattern loads\n function onload() {\n // Create pattern\n pattern = context.createPattern(img, repeat);\n element.set('pattern', pattern); // be a cache\n element.set('patternSource', patternStr);\n }\n\n switch (repeat) {\n case 'a':\n repeat = 'repeat';\n break;\n case 'x':\n repeat = 'repeat-x';\n break;\n case 'y':\n repeat = 'repeat-y';\n break;\n case 'n':\n repeat = 'no-repeat';\n break;\n default:\n repeat = 'no-repeat';\n }\n\n img = new Image();\n // If source URL is not a data URL\n if (!source.match(/^data:/i)) {\n // Set crossOrigin for this image\n img.crossOrigin = 'Anonymous';\n }\n img.src = source;\n\n if (img.complete) {\n onload();\n } else {\n img.onload = onload;\n // Fix onload() bug in IE9\n img.src = img.src;\n }\n\n return pattern;\n}\n\nexport function parseStyle(context: CanvasRenderingContext2D, element: IElement, color: string | CanvasPattern) {\n const bbox = element.getBBox();\n if (isNaN(bbox.x) || isNaN(bbox.y) || isNaN(bbox.width) || isNaN(bbox.height)) {\n return color;\n }\n\n if (isString(color)) {\n if (color[1] === '(' || color[2] === '(') {\n if (color[0] === 'l') {\n // regexLG.test(color)\n return parseLineGradient(context, element, color);\n }\n if (color[0] === 'r') {\n // regexRG.test(color)\n return parseRadialGradient(context, element, color);\n }\n if (color[0] === 'p') {\n // regexPR.test(color)\n return parsePattern(context, element, color);\n }\n }\n return color;\n }\n\n if (color instanceof CanvasPattern) {\n return color;\n }\n}\n\nexport function parseRadius(radius) {\n let r1 = 0;\n let r2 = 0;\n let r3 = 0;\n let r4 = 0;\n if (isArray(radius)) {\n if (radius.length === 1) {\n r1 = r2 = r3 = r4 = radius[0];\n } else if (radius.length === 2) {\n r1 = r3 = radius[0];\n r2 = r4 = radius[1];\n } else if (radius.length === 3) {\n r1 = radius[0];\n r2 = r4 = radius[1];\n r3 = radius[2];\n } else {\n r1 = radius[0];\n r2 = radius[1];\n r3 = radius[2];\n r4 = radius[3];\n }\n } else {\n r1 = r2 = r3 = r4 = radius;\n }\n return [r1, r2, r3, r4];\n}\n","import { mod, toRadian, isSamePoint } from './util';\n\n// 向量长度\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n\n// u.v/|u||v|,计算夹角的余弦值\nfunction vRatio(u, v) {\n // 当存在一个向量的长度为 0 时,夹角也为 0,即夹角的余弦值为 1\n return vMag(u) * vMag(v) ? (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)) : 1;\n}\n\n// 向量角度\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n}\n\n// A 0:rx 1:ry 2:x-axis-rotation 3:large-arc-flag 4:sweep-flag 5: x 6: y\nexport default function getArcParams(startPoint, params) {\n let rx = params[1];\n let ry = params[2];\n const xRotation = mod(toRadian(params[3]), Math.PI * 2);\n const arcFlag = params[4];\n const sweepFlag = params[5];\n // 弧形起点坐标\n const x1 = startPoint[0];\n const y1 = startPoint[1];\n // 弧形终点坐标\n const x2 = params[6];\n const y2 = params[7];\n const xp = (Math.cos(xRotation) * (x1 - x2)) / 2.0 + (Math.sin(xRotation) * (y1 - y2)) / 2.0;\n const yp = (-1 * Math.sin(xRotation) * (x1 - x2)) / 2.0 + (Math.cos(xRotation) * (y1 - y2)) / 2.0;\n const lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n const diff = rx * rx * (yp * yp) + ry * ry * (xp * xp);\n\n let f = diff ? Math.sqrt((rx * rx * (ry * ry) - diff) / diff) : 1;\n\n if (arcFlag === sweepFlag) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n\n // 旋转前的起点坐标,且当长半轴和短半轴的长度为 0 时,坐标按 (0, 0) 处理\n const cxp = ry ? (f * rx * yp) / ry : 0;\n const cyp = rx ? (f * -ry * xp) / rx : 0;\n\n // 椭圆圆心坐标\n const cx = (x1 + x2) / 2.0 + Math.cos(xRotation) * cxp - Math.sin(xRotation) * cyp;\n const cy = (y1 + y2) / 2.0 + Math.sin(xRotation) * cxp + Math.cos(xRotation) * cyp;\n\n // 起始点的单位向量\n const u = [(xp - cxp) / rx, (yp - cyp) / ry];\n // 终止点的单位向量\n const v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n // 计算起始点和圆心的连线,与 x 轴正方向的夹角\n const theta = vAngle([1, 0], u);\n\n // 计算圆弧起始点和终止点与椭圆圆心连线的夹角\n let dTheta = vAngle(u, v);\n\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (sweepFlag === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (sweepFlag === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return {\n cx,\n cy,\n // 弧形的起点和终点相同时,长轴和短轴的长度按 0 处理\n rx: isSamePoint(startPoint, [x2, y2]) ? 0 : rx,\n ry: isSamePoint(startPoint, [x2, y2]) ? 0 : ry,\n startAngle: theta,\n endAngle: theta + dTheta,\n xRotation,\n arcFlag,\n sweepFlag,\n };\n}\n","import { Path } from '../shape';\n\nconst { sin, cos, atan2, PI } = Math;\n\nfunction _addDefaultArrow(shape, attrs, x1, y1, x2, y2, isStart) {\n const { stroke, lineWidth } = attrs;\n const x = x1 - x2;\n const y = y1 - y2;\n const rad = atan2(y, x);\n const arrowShape = new Path({\n type: 'path',\n canvas: shape.get('canvas'),\n isArrowShape: true,\n attrs: {\n // 默认箭头的边长为 10,夹角为 60 度\n path: `M${10 * cos(PI / 6)},${10 * sin(PI / 6)} L0,0 L${10 * cos(PI / 6)},-${10 * sin(PI / 6)}`,\n // 使用 shape stroke 值\n stroke,\n lineWidth,\n },\n });\n arrowShape.translate(x2, y2);\n arrowShape.rotateAtPoint(x2, y2, rad);\n shape.set(isStart ? 'startArrowShape' : 'endArrowShape', arrowShape);\n}\n\n/**\n * 箭头 path 的设置要求\n * 1. 箭头顶点坐标需要为 (0, 0)\n * 2. 箭头夹角的中心分割线需要与 X 轴正方向对齐\n */\nfunction _addCustomizedArrow(shape, attrs, x1, y1, x2, y2, isStart) {\n const { startArrow, endArrow, stroke, lineWidth } = attrs;\n const arrowAttrs = isStart ? startArrow : endArrow;\n const { d, fill: arrowFill, stroke: arrowStroke, lineWidth: arrowLineWidth, ...restAttrs } = arrowAttrs;\n const x = x1 - x2;\n const y = y1 - y2;\n const rad = atan2(y, x);\n\n if (d) {\n x2 = x2 - cos(rad) * d;\n y2 = y2 - sin(rad) * d;\n }\n\n const arrowShape = new Path({\n type: 'path',\n canvas: shape.get('canvas'),\n isArrowShape: true,\n attrs: {\n ...restAttrs,\n // 支持单独设置箭头的 stroke 和 lineWidth,若为空则使用 shape 的值\n stroke: arrowStroke || stroke,\n lineWidth: arrowLineWidth || lineWidth,\n // 箭头是否填充需要手动设置,不会继承自 shape 的值\n fill: arrowFill,\n },\n });\n\n arrowShape.translate(x2, y2);\n arrowShape.rotateAtPoint(x2, y2, rad);\n shape.set(isStart ? 'startArrowShape' : 'endArrowShape', arrowShape);\n}\n\n/**\n * 如果自定义箭头并且有 d 需要做偏移,如果直接画,线条会超出箭头尖端,因此需要根据箭头偏移 d, 返回线需要缩短的距离\n * |----------------\n * |<|--------------\n * |\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 箭头作用点 x\n * @param {number} y2 箭头作用点 y\n * @param {number} d 箭头沿线条方向的偏移距离\n * @return {{dx: number, dy: number}} 返回线条偏移距离\n */\nexport function getShortenOffset(x1, y1, x2, y2, d) {\n const rad = atan2(y2 - y1, x2 - x1);\n return {\n dx: cos(rad) * d,\n dy: sin(rad) * d,\n };\n}\n\n/**\n * 绘制起始箭头\n * @param {IShape} shape 图形\n * @param {ShapeAttrs} attrs shape 的绘图属性\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 箭头作用点 x\n * @param {number} y2 箭头作用点 y\n */\nexport function addStartArrow(shape, attrs, x1, y1, x2, y2) {\n if (typeof attrs.startArrow === 'object') {\n _addCustomizedArrow(shape, attrs, x1, y1, x2, y2, true);\n } else if (attrs.startArrow) {\n _addDefaultArrow(shape, attrs, x1, y1, x2, y2, true);\n } else {\n shape.set('startArrowShape', null);\n }\n}\n\n/**\n * 绘制结束箭头\n * @param {IShape} shape 图形\n * @param {ShapeAttrs} attrs shape 的绘图属性\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 箭头作用点 x\n * @param {number} y2 箭头作用点 y\n */\nexport function addEndArrow(shape, attrs, x1, y1, x2, y2) {\n if (typeof attrs.endArrow === 'object') {\n _addCustomizedArrow(shape, attrs, x1, y1, x2, y2, false);\n } else if (attrs.endArrow) {\n _addDefaultArrow(shape, attrs, x1, y1, x2, y2, false);\n } else {\n shape.set('startArrowShape', null);\n }\n}\n","import { each, isArray, max, min } from '@antv/util';\nimport { IElement } from '../interfaces';\nimport { Region } from '../types';\nimport { parseStyle } from './parse';\nimport getArcParams from './arc-params';\nimport { mergeRegion, intersectRect } from './util';\nimport * as ArrowUtil from '../util/arrow';\n\nconst SHAPE_ATTRS_MAP = {\n fill: 'fillStyle',\n stroke: 'strokeStyle',\n opacity: 'globalAlpha',\n};\n\nexport function applyAttrsToContext(context: CanvasRenderingContext2D, element: IElement) {\n const attrs = element.attr();\n for (const k in attrs) {\n let v = attrs[k];\n // 转换一下不与 canvas 兼容的属性名\n const name = SHAPE_ATTRS_MAP[k] ? SHAPE_ATTRS_MAP[k] : k;\n if (name === 'matrix' && v) {\n // 设置矩阵\n context.transform(v[0], v[1], v[3], v[4], v[6], v[7]);\n } else if (name === 'lineDash' && context.setLineDash) {\n // 设置虚线,只支持数组形式,非数组形式不做任何操作\n isArray(v) && context.setLineDash(v);\n } else {\n if (name === 'strokeStyle' || name === 'fillStyle') {\n // 如果存在渐变、pattern 这个开销有些大\n // 可以考虑缓存机制,通过 hasUpdate 来避免一些运算\n v = parseStyle(context, element, v);\n } else if (name === 'globalAlpha') {\n // opacity 效果可以叠加,子元素的 opacity 需要与父元素 opacity 相乘\n v = v * context.globalAlpha;\n }\n context[name] = v;\n }\n }\n}\n\nexport function drawChildren(context: CanvasRenderingContext2D, children: IElement[], region?: Region) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i] as IElement;\n if (child.cfg.visible) {\n child.draw(context, region);\n } else {\n child.skipDraw();\n }\n }\n}\n\n// 这个地方的逻辑比较复杂,简单画了一张图:https://www.yuque.com/antv/ou292n/pcgt5g#OW1QE\nexport function checkRefresh(canvas, children: IElement[], region: Region) {\n const refreshElements = canvas.get('refreshElements');\n // 先遍历需要刷新的元素,将这些元素的父元素也设置 refresh\n each(refreshElements, (el) => {\n if (el !== canvas) {\n let parent = el.cfg.parent;\n while (parent && parent !== canvas && !parent.cfg.refresh) {\n parent.cfg.refresh = true;\n parent = parent.cfg.parent;\n }\n }\n });\n if (refreshElements[0] === canvas) {\n setChildrenRefresh(children, region);\n } else {\n // 检查所有子元素是否可以刷新\n checkChildrenRefresh(children, region);\n }\n}\n// 检查所有的子元素是否应该更新\nexport function checkChildrenRefresh(children: IElement[], region: Region) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i] as IElement;\n if (child.cfg.visible) {\n // 先判断 hasChanged,因为它的优先级判断应该高于 refresh\n if (child.cfg.hasChanged) {\n // 如果节点发生了 change,则需要级联设置子元素的 refresh\n child.cfg.refresh = true;\n if (child.isGroup()) {\n setChildrenRefresh(child.cfg.children, region);\n }\n } else if (child.cfg.refresh) {\n // 如果当前图形/分组 refresh = true,说明其子节点存在 changed\n if (child.isGroup()) {\n checkChildrenRefresh(child.cfg.children, region);\n }\n } else {\n // 这个分支说明此次局部刷新,所有的节点和父元素没有发生变化,仅需要检查包围盒(缓存)是否相交即可\n const refresh = checkElementRefresh(child, region);\n child.cfg.refresh = refresh;\n if (refresh && child.isGroup()) {\n // 如果需要刷新,说明子元素也需要刷新,继续进行判定\n checkChildrenRefresh(child.cfg.children, region);\n }\n }\n }\n }\n}\n\n// 由于对改变的图形放入 refreshElements 时做了优化,判定父元素 changed 时不加入\n// 那么有可能会出现 elements 都为空,所以最终 group\nexport function clearChanged(elements: IElement[]) {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n el.cfg.hasChanged = false;\n // 级联清理\n if (el.isGroup() && !el.destroyed) {\n clearChanged(el.cfg.children);\n }\n }\n}\n\n// 当某个父元素发生改变时,调用这个方法级联设置 refresh\nfunction setChildrenRefresh(children: IElement[], region: Region) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i] as IElement;\n if (!child.cfg.visible) {\n continue;\n }\n // let refresh = true;\n // 获取缓存的 bbox,如果这个 bbox 还存在则说明父元素不是矩阵发生了改变\n // const bbox = child.cfg.canvasBBox;\n // if (bbox) {\n // // 如果这时候\n // refresh = intersectRect(bbox, region);\n // }\n child.cfg.refresh = true;\n // 如果需要刷新当前节点,所有的子元素设置 refresh\n if (child.isGroup()) {\n setChildrenRefresh(child.get('children'), region);\n }\n }\n}\n\nfunction checkElementRefresh(shape: IElement, region: Region): boolean {\n const bbox = shape.cfg.cacheCanvasBBox;\n const isAllow = shape.cfg.isInView && bbox && intersectRect(bbox, region);\n return isAllow;\n}\n\n// 绘制 path\nexport function drawPath(shape, context, attrs, arcParamsCache) {\n const { path, startArrow, endArrow } = attrs;\n if (!path) {\n return;\n }\n let currentPoint = [0, 0]; // 当前图形\n let startMovePoint = [0, 0]; // 开始 M 的点,可能会有多个\n let distance = {\n dx: 0,\n dy: 0,\n };\n context.beginPath();\n for (let i = 0; i < path.length; i++) {\n const params = path[i];\n const command = params[0];\n if (i === 0 && startArrow && startArrow.d) {\n const tangent = shape.getStartTangent();\n distance = ArrowUtil.getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], startArrow.d);\n } else if (i === path.length - 2 && path[i + 1][0] === 'Z' && endArrow && endArrow.d) {\n // 为了防止结尾为 Z 的 segment 缩短不起效,需要取最后两个 segment 特殊处理\n const lastPath = path[i + 1];\n if (lastPath[0] === 'Z') {\n const tangent = shape.getEndTangent();\n distance = ArrowUtil.getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], endArrow.d);\n }\n } else if (i === path.length - 1 && endArrow && endArrow.d) {\n if (path[0] !== 'Z') {\n const tangent = shape.getEndTangent();\n distance = ArrowUtil.getShortenOffset(tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1], endArrow.d);\n }\n }\n\n const { dx, dy } = distance;\n // V,H,S,T 都在前面被转换成标准形式\n switch (command) {\n case 'M':\n context.moveTo(params[1] - dx, params[2] - dy);\n startMovePoint = [params[1], params[2]];\n break;\n case 'L':\n context.lineTo(params[1] - dx, params[2] - dy);\n break;\n case 'Q':\n context.quadraticCurveTo(params[1], params[2], params[3] - dx, params[4] - dy);\n break;\n case 'C':\n context.bezierCurveTo(params[1], params[2], params[3], params[4], params[5] - dx, params[6] - dy);\n break;\n case 'A': {\n let arcParams;\n // 为了加速绘制,可以提供参数的缓存,各个图形自己缓存\n if (arcParamsCache) {\n arcParams = arcParamsCache[i];\n if (!arcParams) {\n arcParams = getArcParams(currentPoint, params);\n arcParamsCache[i] = arcParams;\n }\n } else {\n arcParams = getArcParams(currentPoint, params);\n }\n const { cx, cy, rx, ry, startAngle, endAngle, xRotation, sweepFlag } = arcParams;\n // 直接使用椭圆的 api\n if (context.ellipse) {\n context.ellipse(cx, cy, rx, ry, xRotation, startAngle, endAngle, 1 - sweepFlag);\n } else {\n const r = rx > ry ? rx : ry;\n const scaleX = rx > ry ? 1 : rx / ry;\n const scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(xRotation);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, startAngle, endAngle, 1 - sweepFlag);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-xRotation);\n context.translate(-cx, -cy);\n }\n break;\n }\n case 'Z':\n context.closePath();\n break;\n default:\n break;\n }\n\n // 有了 Z 后,当前节点从开始 M 的点开始\n if (command === 'Z') {\n currentPoint = startMovePoint;\n } else {\n const len = params.length;\n currentPoint = [params[len - 2], params[len - 1]];\n }\n }\n}\n\n// 刷新图形元素(Shape 或者 Group)\nexport function refreshElement(element, changeType) {\n const canvas = element.get('canvas');\n // 只有存在于 canvas 上时生效\n if (canvas) {\n if (changeType === 'remove') {\n // 一旦 remove,则无法在 element 上拿到包围盒\n // destroy 后所有属性都拿不到,所以需要暂存一下\n // 这是一段 hack 的代码\n element._cacheCanvasBBox = element.get('cacheCanvasBBox');\n }\n // 防止反复刷新\n if (!element.get('hasChanged')) {\n // 但是始终要标记为 hasChanged,便于后面进行局部渲染\n element.set('hasChanged', true);\n\n // 本来只有局部渲染模式下,才需要记录更新的元素队列\n // if (canvas.get('localRefresh')) {\n // canvas.refreshElement(element, changeType, canvas);\n // }\n // 但对于 https://github.com/antvis/g/issues/422 的场景,全局渲染的模式下也需要记录更新的元素队列\n // 如果当前元素的父元素发生了改变,可以不放入队列,这句话大概能够提升 15% 的初次渲染性能\n if (!(element.cfg.parent && element.cfg.parent.get('hasChanged'))) {\n canvas.refreshElement(element, changeType, canvas);\n if (canvas.get('autoDraw')) {\n canvas.draw();\n }\n }\n }\n }\n}\n\nexport function getRefreshRegion(element): Region | undefined {\n let region;\n if (!element.destroyed) {\n const cacheBox = element.get('cacheCanvasBBox');\n const validCache = cacheBox && !!(cacheBox.width && cacheBox.height);\n const bbox = element.getCanvasBBox();\n const validBBox = bbox && !!(bbox.width && bbox.height);\n // 是否是有效 bbox 判定,一些 NaN 或者 宽高为 0 的情况过滤掉\n if (validCache && validBBox) {\n region = mergeRegion(cacheBox, bbox);\n } else if (validCache) {\n region = cacheBox;\n } else if (validBBox) {\n region = bbox;\n }\n } else {\n // 因为元素已经销毁所以无法获取到缓存的包围盒\n region = element['_cacheCanvasBBox'];\n }\n return region;\n}\n\nexport function getMergedRegion(elements): Region {\n if (!elements.length) {\n return null;\n }\n const minXArr = [];\n const minYArr = [];\n const maxXArr = [];\n const maxYArr = [];\n each(elements, (el: IElement) => {\n const region = getRefreshRegion(el);\n if (region) {\n minXArr.push(region.minX);\n minYArr.push(region.minY);\n maxXArr.push(region.maxX);\n maxYArr.push(region.maxY);\n }\n });\n return {\n minX: min(minXArr),\n minY: min(minYArr),\n maxX: max(maxXArr),\n maxY: max(maxYArr),\n };\n}\n\nexport function mergeView(region, viewRegion) {\n if (!region || !viewRegion) {\n return null;\n }\n // 不相交,则直接返回 null\n if (!intersectRect(region, viewRegion)) {\n return null;\n }\n return {\n minX: Math.max(region.minX, viewRegion.minX),\n minY: Math.max(region.minY, viewRegion.minY),\n maxX: Math.min(region.maxX, viewRegion.maxX),\n maxY: Math.min(region.maxY, viewRegion.maxY),\n };\n}\n","import { AbstractGroup } from '@antv/g-base';\nimport { ChangeType } from '@antv/g-base';\nimport { IElement } from './interfaces';\nimport { Region } from './types';\nimport ShapeBase from './shape/base';\nimport * as Shape from './shape';\nimport { applyAttrsToContext, drawChildren, refreshElement } from './util/draw';\nimport { each, max, min } from '@antv/util';\nimport { intersectRect } from './util/util';\n\nclass Group extends AbstractGroup {\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n onCanvasChange(changeType: ChangeType) {\n refreshElement(this, changeType);\n }\n\n getShapeBase() {\n return Shape;\n }\n\n getGroupBase() {\n return Group;\n }\n\n // 同 shape 中的方法重复了\n _applyClip(context, clip: ShapeBase) {\n if (clip) {\n context.save();\n // 将 clip 的属性挂载到 context 上\n applyAttrsToContext(context, clip);\n // 绘制 clip 路径\n clip.createPath(context);\n context.restore();\n // 裁剪\n context.clip();\n clip._afterDraw();\n }\n }\n\n // 这个方法以前直接使用的 getCanvasBBox,由于 group 上没有缓存,所以每次重新计算,导致性能开销比较大\n // 大概能够节省全局渲染 15-20% 的性能,如果不在这里加缓存优化后 10W 个节点无法达到 5-6 ms,大概能够 30-40ms\n private cacheCanvasBBox() {\n const children = this.cfg.children;\n const xArr = [];\n const yArr = [];\n each(children, (child) => {\n const bbox = child.cfg.cacheCanvasBBox;\n // isInview 的判定是一旦图形或者分组渲染就要计算是否在视图内,\n // 这个判定 10W 个图形下差不多能够节省 5-6 ms 的开销\n if (bbox && child.cfg.isInView) {\n xArr.push(bbox.minX, bbox.maxX);\n yArr.push(bbox.minY, bbox.maxY);\n }\n });\n let bbox = null;\n if (xArr.length) {\n const minX = min(xArr);\n const maxX = max(xArr);\n const minY = min(yArr);\n const maxY = max(yArr);\n bbox = {\n minX,\n minY,\n x: minX,\n y: minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n };\n const canvas = this.cfg.canvas;\n if (canvas) {\n const viewRange = canvas.getViewRange();\n // 如果这个地方判定 isInView == false 设置 bbox 为 false 的话,拾取的性能会更高\n // 但是目前 10W 图形的拾取在 2-5ms 内,这个优化意义不大,可以后期观察再看\n this.set('isInView', intersectRect(bbox, viewRange));\n }\n } else {\n this.set('isInView', false);\n }\n\n this.set('cacheCanvasBBox', bbox);\n }\n\n draw(context: CanvasRenderingContext2D, region?: Region) {\n const children = this.cfg.children as IElement[];\n const allowDraw = region ? this.cfg.refresh : true; // 局部刷新需要判定\n // 这个地方需要判定,在 G6 的场景每个 group 都有 transform 的场景下性能会开销非常大\n // 通过 refresh 的判定,可以不刷新没有发生过变化的分组,不在视窗内的分组等等\n // 如果想进一步提升局部渲染性能,可以进一步优化 refresh 的判定,依然有潜力\n if (children.length && allowDraw) {\n context.save();\n // group 上的矩阵和属性也会应用到上下文上\n // 先将 attrs 应用到上下文中,再设置 clip。因为 clip 应该被当前元素的 matrix 所影响\n applyAttrsToContext(context, this);\n this._applyClip(context, this.getClip() as ShapeBase);\n drawChildren(context, children, region);\n context.restore();\n this.cacheCanvasBBox();\n }\n // 这里的成本比较大,如果不绘制则不再\n // this.set('cacheCanvasBBox', this.getCanvasBBox());\n this.cfg.refresh = null;\n // 绘制后,消除更新标记\n this.set('hasChanged', false);\n }\n // 绘制时被跳过,一般发生在分组隐藏时\n skipDraw() {\n this.set('cacheCanvasBBox', null);\n this.set('hasChanged', false);\n }\n}\n\nexport default Group;\n","import { AbstractShape } from '@antv/g-base';\nimport { ChangeType, BBox } from '@antv/g-base';\nimport { isNil, intersectRect } from '../util/util';\nimport { applyAttrsToContext, refreshElement } from '../util/draw';\nimport { getBBoxMethod } from '@antv/g-base';\nimport { Region } from '../types';\nimport * as Shape from './index';\nimport Group from '../group';\n\nclass ShapeBase extends AbstractShape {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n // 设置默认值\n return {\n ...attrs,\n lineWidth: 1,\n lineAppendWidth: 0,\n strokeOpacity: 1,\n fillOpacity: 1,\n };\n }\n\n getShapeBase() {\n return Shape;\n }\n\n getGroupBase() {\n return Group;\n }\n\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n onCanvasChange(changeType: ChangeType) {\n refreshElement(this, changeType);\n }\n\n calculateBBox(): BBox {\n const type = this.get('type');\n const lineWidth = this.getHitLineWidth();\n // const attrs = this.attr();\n const bboxMethod = getBBoxMethod(type);\n const box = bboxMethod(this);\n const halfLineWidth = lineWidth / 2;\n const minX = box.x - halfLineWidth;\n const minY = box.y - halfLineWidth;\n const maxX = box.x + box.width + halfLineWidth;\n const maxY = box.y + box.height + halfLineWidth;\n return {\n x: minX,\n minX,\n y: minY,\n minY,\n width: box.width + lineWidth,\n height: box.height + lineWidth,\n maxX,\n maxY,\n };\n }\n\n isFill() {\n return !!this.attrs['fill'] || this.isClipShape();\n }\n\n isStroke() {\n return !!this.attrs['stroke'];\n }\n\n // 同 shape 中的方法重复了\n _applyClip(context, clip: ShapeBase) {\n if (clip) {\n context.save();\n // 将 clip 的属性挂载到 context 上\n applyAttrsToContext(context, clip);\n // 绘制 clip 路径\n clip.createPath(context);\n context.restore();\n // 裁剪\n context.clip();\n clip._afterDraw();\n }\n }\n\n // 绘制图形时需要考虑 region 限制\n draw(context: CanvasRenderingContext2D, region?: Region) {\n const clip = this.cfg.clipShape;\n // 如果指定了 region,同时不允许刷新时,直接返回\n if (region) {\n if (this.cfg.refresh === false) {\n // this._afterDraw();\n this.set('hasChanged', false);\n return;\n }\n // 是否相交需要考虑 clip 的包围盒\n const bbox = this.getCanvasBBox();\n if (!intersectRect(region, bbox)) {\n // 图形的包围盒与重绘区域不相交时,也需要清除标记\n this.set('hasChanged', false);\n // 存在多种情形需要更新 cacheCanvasBBox 和 isInview 的判定\n // 1. 之前图形在视窗内,但是现在不再视窗内\n // 2. 如果当前的图形以及父元素都没有发生过变化,refresh = false 不会走到这里,所以这里的图形都是父元素发生变化,但是没有在视图内的元素\n if (this.cfg.isInView) {\n this._afterDraw();\n }\n return;\n }\n }\n context.save();\n // 先将 attrs 应用到上下文中,再设置 clip。因为 clip 应该被当前元素的 matrix 所影响\n applyAttrsToContext(context, this);\n this._applyClip(context, clip as ShapeBase);\n this.drawPath(context);\n context.restore();\n this._afterDraw();\n }\n\n private getCanvasViewBox() {\n const canvas = this.cfg.canvas;\n if (canvas) {\n // @ts-ignore\n return canvas.getViewRange();\n }\n return null;\n }\n\n cacheCanvasBBox() {\n const canvasBBox = this.getCanvasViewBox();\n // 绘制的时候缓存包围盒\n if (canvasBBox) {\n const bbox = this.getCanvasBBox();\n const isInView = intersectRect(bbox, canvasBBox);\n this.set('isInView', isInView);\n // 不再视窗内 cacheCanvasBBox 设置成 null,会提升局部渲染的性能,\n // 因为在局部渲染影响的包围盒计算时不考虑这个图形的包围盒\n // 父元素 cacheCanvasBBox 计算的时候也不计算\n if (isInView) {\n this.set('cacheCanvasBBox', bbox);\n } else {\n this.set('cacheCanvasBBox', null);\n }\n }\n }\n\n _afterDraw() {\n this.cacheCanvasBBox();\n // 绘制后消除标记\n this.set('hasChanged', false);\n this.set('refresh', null);\n }\n\n skipDraw() {\n this.set('cacheCanvasBBox', null);\n this.set('isInView', null);\n this.set('hasChanged', false);\n }\n\n /**\n * 绘制图形的路径\n * @param {CanvasRenderingContext2D} context 上下文\n */\n drawPath(context: CanvasRenderingContext2D) {\n this.createPath(context);\n this.strokeAndFill(context);\n this.afterDrawPath(context);\n }\n\n /**\n * @protected\n * 填充图形\n * @param {CanvasRenderingContext2D} context context 上下文\n */\n fill(context: CanvasRenderingContext2D) {\n context.fill();\n }\n\n /**\n * @protected\n * 绘制图形边框\n * @param {CanvasRenderingContext2D} context context 上下文\n */\n stroke(context: CanvasRenderingContext2D) {\n context.stroke();\n }\n\n // 绘制或者填充\n strokeAndFill(context) {\n const { lineWidth, opacity, strokeOpacity, fillOpacity } = this.attrs;\n\n if (this.isFill()) {\n if (!isNil(fillOpacity) && fillOpacity !== 1) {\n context.globalAlpha = fillOpacity;\n this.fill(context);\n context.globalAlpha = opacity;\n } else {\n this.fill(context);\n }\n }\n\n if (this.isStroke()) {\n if (lineWidth > 0) {\n if (!isNil(strokeOpacity) && strokeOpacity !== 1) {\n context.globalAlpha = strokeOpacity;\n }\n this.stroke(context);\n }\n }\n this.afterDrawPath(context);\n }\n\n /**\n * @protected\n * 绘制图形的路径\n * @param {CanvasRenderingContext2D} context 上下文\n */\n createPath(context: CanvasRenderingContext2D) {}\n\n /**\n * 绘制完成 path 后的操作\n * @param {CanvasRenderingContext2D} context 上下文\n */\n afterDrawPath(context: CanvasRenderingContext2D) {}\n\n isInShape(refX: number, refY: number): boolean {\n // return HitUtil.isHitShape(this, refX, refY);\n const isStroke = this.isStroke();\n const isFill = this.isFill();\n const lineWidth = this.getHitLineWidth();\n return this.isInStrokeOrPath(refX, refY, isStroke, isFill, lineWidth);\n }\n\n // 之所以不拆成 isInStroke 和 isInPath 在于两者存在一些共同的计算\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n return false;\n }\n\n /**\n * 获取线拾取的宽度\n * @returns {number} 线的拾取宽度\n */\n getHitLineWidth() {\n if (!this.isStroke()) {\n return 0;\n }\n const attrs = this.attrs;\n return attrs['lineWidth'] + attrs['lineAppendWidth'];\n }\n}\n\nexport default ShapeBase;\n","/**\n * @fileoverview 圆\n * @author dxq613@gmail.com\n */\n\nimport ShapeBase from './base';\nimport { distance } from '../util/util';\n\nclass Circle extends ShapeBase {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n r: 0,\n };\n }\n\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n const attrs = this.attr();\n const cx = attrs.x;\n const cy = attrs.y;\n const r = attrs.r;\n const halfLineWidth = lineWidth / 2;\n const absDistance = distance(cx, cy, x, y);\n // 直接用距离,如果同时存在边和填充时,可以减少两次计算\n if (isFill && isStroke) {\n return absDistance <= r + halfLineWidth;\n }\n if (isFill) {\n return absDistance <= r;\n }\n if (isStroke) {\n return absDistance >= r - halfLineWidth && absDistance <= r + halfLineWidth;\n }\n return false;\n }\n\n createPath(context) {\n const attrs = this.attr();\n const cx = attrs.x;\n const cy = attrs.y;\n const r = attrs.r;\n context.beginPath();\n context.arc(cx, cy, r, 0, Math.PI * 2, false);\n context.closePath();\n }\n}\n\nexport default Circle;\n","/**\n * @fileoverview 椭圆\n * @author dxq613@gmail.com\n */\n\nimport ShapeBase from './base';\n\n// 根据椭圆公式计算 x*x/rx*rx + y*y/ry*ry;\nfunction ellipseDistance(squareX, squareY, rx, ry) {\n return squareX / (rx * rx) + squareY / (ry * ry);\n}\n\nclass Ellipse extends ShapeBase {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n rx: 0,\n ry: 0,\n };\n }\n\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n const attrs = this.attr();\n const halfLineWith = lineWidth / 2;\n const cx = attrs.x;\n const cy = attrs.y;\n const { rx, ry } = attrs;\n const squareX = (x - cx) * (x - cx);\n const squareY = (y - cy) * (y - cy);\n // 使用椭圆的公式: x*x/rx*rx + y*y/ry*ry = 1;\n if (isFill && isStroke) {\n return ellipseDistance(squareX, squareY, rx + halfLineWith, ry + halfLineWith) <= 1;\n }\n if (isFill) {\n return ellipseDistance(squareX, squareY, rx, ry) <= 1;\n }\n if (isStroke) {\n return (\n ellipseDistance(squareX, squareY, rx - halfLineWith, ry - halfLineWith) >= 1 &&\n ellipseDistance(squareX, squareY, rx + halfLineWith, ry + halfLineWith) <= 1\n );\n }\n return false;\n }\n\n createPath(context) {\n const attrs = this.attr();\n const cx = attrs.x;\n const cy = attrs.y;\n const rx = attrs.rx;\n const ry = attrs.ry;\n context.beginPath();\n // 兼容逻辑\n if (context.ellipse) {\n context.ellipse(cx, cy, rx, ry, 0, 0, Math.PI * 2, false);\n } else {\n // 如果不支持,则使用圆来绘制,进行变形\n const r = rx > ry ? rx : ry;\n const scaleX = rx > ry ? 1 : rx / ry;\n const scaleY = rx > ry ? ry / rx : 1;\n context.save();\n context.translate(cx, cy);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, 0, Math.PI * 2);\n context.restore();\n context.closePath();\n }\n }\n}\n\nexport default Ellipse;\n","/**\n * @fileoverview 图片\n * @author dxq613@gmail.com\n */\n\nimport ShapeBase from './base';\nimport { isString, isNil } from '../util/util';\nfunction isCanvas(dom) {\n return dom instanceof HTMLElement && isString(dom.nodeName) && dom.nodeName.toUpperCase() === 'CANVAS';\n}\n\nclass ImageShape extends ShapeBase {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n\n initAttrs(attrs) {\n this._setImage(attrs.img);\n }\n\n // image 不计算 stroke\n isStroke() {\n return false;\n }\n\n // 仅仅使用包围盒检测来进行拾取\n // 所以不需要复写 isInStrokeOrPath 的方法\n isOnlyHitBox() {\n return true;\n }\n\n _afterLoading() {\n if (this.get('toDraw') === true) {\n const canvas = this.get('canvas');\n if (canvas) {\n // 这段应该改成局部渲染\n canvas.draw();\n } else {\n // 这种方式如果发生遮挡会出现问题\n this.createPath(this.get('context'));\n }\n }\n }\n\n _setImage(img) {\n const attrs = this.attrs;\n if (isString(img)) {\n const image = new Image();\n image.onload = () => {\n // 图片未加载完,则已经被销毁\n if (this.destroyed) {\n return false;\n }\n // 缓存原始地址,可以做对比,防止重复加载图片\n // 如果考虑到在加载过程中可能替换 img 属性,则情况更加复杂\n // this.set('imgSrc', img);\n // 这里会循环调用 _setImage 方法,但不会再走这个分支\n this.attr('img', image);\n this.set('loading', false);\n this._afterLoading();\n const callback = this.get('callback');\n if (callback) {\n callback.call(this);\n }\n };\n // 设置跨域\n image.crossOrigin = 'Anonymous';\n\n image.src = img;\n // loading 过程中不绘制\n this.set('loading', true);\n } else if (img instanceof Image) {\n // 如果是一个 image 对象,则设置宽高\n if (!attrs.width) {\n attrs.width = img.width;\n }\n if (!attrs.height) {\n attrs.height = img.height;\n }\n } else if (isCanvas(img)) {\n // 如果设置了 canvas 对象\n if (!attrs.width) {\n attrs.width = Number(img.getAttribute('width'));\n }\n\n if (!attrs.height) {\n attrs.height, Number(img.getAttribute('height'));\n }\n }\n }\n\n onAttrChange(name: string, value: any, originValue: any) {\n super.onAttrChange(name, value, originValue);\n // 如果加载的已经是当前图片,则不再处理\n if (name === 'img') {\n // 可以加缓冲,&& this.get('imgSrc') !== value\n this._setImage(value);\n }\n }\n\n createPath(context: CanvasRenderingContext2D) {\n // 正在加载则不绘制\n if (this.get('loading')) {\n this.set('toDraw', true); // 加载完成后绘制\n this.set('context', context);\n return;\n }\n const attrs = this.attr();\n const { x, y, width, height, sx, sy, swidth, sheight } = attrs;\n\n const img = attrs.img;\n if (img instanceof Image || isCanvas(img)) {\n if (!isNil(sx) && !isNil(sy) && !isNil(swidth) && !isNil(sheight)) {\n context.drawImage(img, sx, sy, swidth, sheight, x, y, width, height);\n } else {\n context.drawImage(img, x, y, width, height);\n }\n }\n }\n}\n\nexport default ImageShape;\n","import { Line as LineUtil } from '@antv/g-math';\n\nexport default function inLine(x1, y1, x2, y2, lineWidth, x, y) {\n const minX = Math.min(x1, x2);\n const maxX = Math.max(x1, x2);\n const minY = Math.min(y1, y2);\n const maxY = Math.max(y1, y2);\n const halfWidth = lineWidth / 2;\n // 因为目前的方案是计算点到直线的距离,而有可能会在延长线上,所以要先判断是否在包围盒内\n // 这种方案会在水平或者竖直的情况下载线的延长线上有半 lineWidth 的误差\n if (!(x >= minX - halfWidth && x <= maxX + halfWidth && y >= minY - halfWidth && y <= maxY + halfWidth)) {\n return false;\n }\n // 因为已经计算了包围盒,所以仅需要计算到直线的距离即可,可以显著提升性能\n return LineUtil.pointToLine(x1, y1, x2, y2, x, y) <= lineWidth / 2;\n}\n","/**\n * @fileoverview 线\n * @author dxq613@gmail.com\n */\nimport { Line as LineUtil } from '@antv/g-math';\nimport ShapeBase from './base';\nimport inLine from '../util/in-stroke/line';\nimport * as ArrowUtil from '../util/arrow';\n\nclass Line extends ShapeBase {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n startArrow: false,\n endArrow: false,\n };\n }\n\n initAttrs(attrs) {\n this.setArrow();\n }\n\n // 更新属性时,检测是否更改了箭头\n onAttrChange(name: string, value: any, originValue: any) {\n super.onAttrChange(name, value, originValue);\n // 由于箭头的绘制依赖于 line 的诸多 attrs,因此这里不再对每个 attr 进行判断,attr 每次变化都会影响箭头的更新\n this.setArrow();\n }\n\n setArrow() {\n const attrs = this.attr();\n const { x1, y1, x2, y2, startArrow, endArrow } = attrs;\n if (startArrow) {\n ArrowUtil.addStartArrow(this, attrs, x2, y2, x1, y1);\n }\n if (endArrow) {\n ArrowUtil.addEndArrow(this, attrs, x1, y1, x2, y2);\n }\n }\n\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n if (!isStroke || !lineWidth) {\n return false;\n }\n const { x1, y1, x2, y2 } = this.attr();\n return inLine(x1, y1, x2, y2, lineWidth, x, y);\n }\n\n createPath(context) {\n const attrs = this.attr();\n const { x1, y1, x2, y2, startArrow, endArrow } = attrs;\n let startArrowDistance = {\n dx: 0,\n dy: 0,\n };\n let endArrowDistance = {\n dx: 0,\n dy: 0,\n };\n\n if (startArrow && startArrow.d) {\n startArrowDistance = ArrowUtil.getShortenOffset(x1, y1, x2, y2, attrs.startArrow.d);\n }\n if (endArrow && endArrow.d) {\n endArrowDistance = ArrowUtil.getShortenOffset(x1, y1, x2, y2, attrs.endArrow.d);\n }\n\n context.beginPath();\n // 如果自定义箭头,线条相应缩进\n context.moveTo(x1 + startArrowDistance.dx, y1 + startArrowDistance.dy);\n context.lineTo(x2 - endArrowDistance.dx, y2 - endArrowDistance.dy);\n }\n\n afterDrawPath(context) {\n const startArrowShape = this.get('startArrowShape');\n const endArrowShape = this.get('endArrowShape');\n if (startArrowShape) {\n startArrowShape.draw(context);\n }\n if (endArrowShape) {\n endArrowShape.draw(context);\n }\n }\n\n /**\n * Get length of line\n * @return {number} length\n */\n getTotalLength() {\n const { x1, y1, x2, y2 } = this.attr();\n return LineUtil.length(x1, y1, x2, y2);\n }\n\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n getPoint(ratio: number) {\n const { x1, y1, x2, y2 } = this.attr();\n return LineUtil.pointAt(x1, y1, x2, y2, ratio);\n }\n}\n\nexport default Line;\n","/**\n * @fileoverview Marker\n * @author dxq613@gmail.com\n */\n\nimport { isNil } from '@antv/util';\nimport { path2Absolute } from '@antv/path-util';\nimport ShapeBase from './base';\nimport { isFunction } from '../util/util';\nimport { drawPath } from '../util/draw';\n\nconst Symbols = {\n // 圆\n circle(x, y, r) {\n return [\n ['M', x - r, y],\n ['A', r, r, 0, 1, 0, x + r, y],\n ['A', r, r, 0, 1, 0, x - r, y],\n ];\n },\n // 正方形\n square(x, y, r) {\n return [['M', x - r, y - r], ['L', x + r, y - r], ['L', x + r, y + r], ['L', x - r, y + r], ['Z']];\n },\n // 菱形\n diamond(x, y, r) {\n return [['M', x - r, y], ['L', x, y - r], ['L', x + r, y], ['L', x, y + r], ['Z']];\n },\n // 三角形\n triangle(x, y, r) {\n const diffY = r * Math.sin((1 / 3) * Math.PI);\n return [['M', x - r, y + diffY], ['L', x, y - diffY], ['L', x + r, y + diffY], ['Z']];\n },\n // 倒三角形\n 'triangle-down'(x, y, r) {\n const diffY = r * Math.sin((1 / 3) * Math.PI);\n return [['M', x - r, y - diffY], ['L', x + r, y - diffY], ['L', x, y + diffY], ['Z']];\n },\n};\n\nclass Marker extends ShapeBase {\n initAttrs(attrs) {\n this._resetParamsCache();\n }\n\n // 重置绘制 path 存储的缓存\n _resetParamsCache() {\n // 为了加速 path 的绘制、拾取和计算,这个地方可以缓存很多东西\n // 这些缓存都是第一次需要时计算和存储,虽然增加了复杂度,但是频繁调用的方法,性能有很大提升\n this.set('paramsCache', {}); // 清理缓存\n }\n\n // 更新属性时,检测是否更改了 path\n onAttrChange(name: string, value: any, originValue: any) {\n super.onAttrChange(name, value, originValue);\n if (['symbol', 'x', 'y', 'r', 'radius'].indexOf(name) !== -1) {\n // path 相关属性更改时,清理缓存\n this._resetParamsCache();\n }\n }\n\n // 仅仅使用包围盒检测来进行拾取\n // 所以不需要复写 isInStrokeOrPath 的方法\n isOnlyHitBox() {\n return true;\n }\n\n _getR(attrs) {\n // 兼容 r 和 radius 两种写法,推荐使用 r\n return isNil(attrs.r) ? attrs.radius : attrs.r;\n }\n\n _getPath() {\n const attrs = this.attr();\n const { x, y } = attrs;\n const symbol = attrs.symbol || 'circle';\n const r = this._getR(attrs);\n let method;\n let path;\n if (isFunction(symbol)) {\n method = symbol;\n path = method(x, y, r);\n // 将 path 转成绝对路径\n path = path2Absolute(path);\n } else {\n // 内置 symbol 的 path 都是绝对路径,直接绘制即可,不需要对 path 进行特殊处理\n method = Marker.Symbols[symbol];\n\n if (!method) {\n console.warn(`${symbol} marker is not supported.`);\n return null;\n }\n\n path = method(x, y, r);\n }\n\n return path;\n }\n\n createPath(context) {\n const path = this._getPath();\n const paramsCache = this.get('paramsCache');\n drawPath(this, context, { path }, paramsCache);\n }\n\n static Symbols = Symbols;\n}\n\nexport default Marker;\n","import { getOffScreenContext } from '@antv/g-base';\n\nexport default function isPointInPath(shape, x, y) {\n const ctx = getOffScreenContext();\n shape.createPath(ctx);\n return ctx.isPointInPath(x, y);\n}\n","/**\n * @fileoverview 判断点是否在多边形内\n * @author dxq613@gmail.com\n */\n\n// 多边形的射线检测,参考:https://blog.csdn.net/WilliamSun0122/article/details/77994526\nconst tolerance = 1e-6;\n// 三态函数,判断两个double在eps精度下的大小关系\nfunction dcmp(x) {\n if (Math.abs(x) < tolerance) {\n return 0;\n }\n\n return x < 0 ? -1 : 1;\n}\n\n// 判断点Q是否在p1和p2的线段上\nfunction onSegment(p1, p2, q) {\n if (\n (q[0] - p1[0]) * (p2[1] - p1[1]) === (p2[0] - p1[0]) * (q[1] - p1[1]) &&\n Math.min(p1[0], p2[0]) <= q[0] &&\n q[0] <= Math.max(p1[0], p2[0]) &&\n Math.min(p1[1], p2[1]) <= q[1] &&\n q[1] <= Math.max(p1[1], p2[1])\n ) {\n return true;\n }\n return false;\n}\n\n// 判断点P在多边形内-射线法\nexport default function isInPolygon(points, x, y) {\n let isHit = false;\n const n = points.length;\n if (n <= 2) {\n // svg 中点小于 3 个时,不显示,也无法被拾取\n return false;\n }\n for (let i = 0; i < n; i++) {\n const p1 = points[i];\n const p2 = points[(i + 1) % n];\n if (onSegment(p1, p2, [x, y])) {\n // 点在多边形一条边上\n return true;\n }\n // 前一个判断min(p1[1],p2[1]) 0 !== dcmp(p2[1] - y) > 0 &&\n dcmp(x - ((y - p1[1]) * (p1[0] - p2[0])) / (p1[1] - p2[1]) - p1[0]) < 0\n ) {\n isHit = !isHit;\n }\n }\n return isHit;\n}\n","import { distance } from '../util';\nexport default function arc(cx, cy, r, startAngle, endAngle, lineWidth, x, y) {\n const angle = (Math.atan2(y - cy, x - cx) + Math.PI * 2) % (Math.PI * 2); // 转换到 0 - 2 * Math.PI 之间\n if (angle < startAngle || angle > endAngle) {\n return false;\n }\n const point = {\n x: cx + r * Math.cos(angle),\n y: cy + r * Math.sin(angle),\n };\n return distance(point.x, point.y, x, y) <= lineWidth / 2;\n}\n","/**\n * @fileoverview path 的一些工具\n * @author dxq613@gmail.com\n */\nimport { PathUtil } from '@antv/g-base';\nimport { Quad as QuadUtil } from '@antv/g-math';\nimport { Cubic as CubicUtil } from '@antv/g-math';\nimport { ext } from '@antv/matrix-util';\nimport * as vec3 from 'gl-matrix/vec3';\nimport { inBox } from './util';\nimport inLine from './in-stroke/line';\nimport inArc from './in-stroke/arc';\n\nconst { transform } = ext;\n\nfunction hasArc(path) {\n let hasArc = false;\n const count = path.length;\n for (let i = 0; i < count; i++) {\n const params = path[i];\n const cmd = params[0];\n if (cmd === 'C' || cmd === 'A' || cmd === 'Q') {\n hasArc = true;\n break;\n }\n }\n return hasArc;\n}\n\nfunction isPointInStroke(segments, lineWidth, x, y, length) {\n let isHit = false;\n const halfWidth = lineWidth / 2;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const { currentPoint, params, prePoint, box } = segment;\n // 如果在前面已经生成过包围盒,直接按照包围盒计算\n if (box && !inBox(box.x - halfWidth, box.y - halfWidth, box.width + lineWidth, box.height + lineWidth, x, y)) {\n continue;\n }\n switch (segment.command) {\n // L 和 Z 都是直线, M 不进行拾取\n case 'L':\n case 'Z':\n isHit = inLine(prePoint[0], prePoint[1], currentPoint[0], currentPoint[1], lineWidth, x, y);\n break;\n case 'Q':\n const qDistance = QuadUtil.pointDistance(\n prePoint[0],\n prePoint[1],\n params[1],\n params[2],\n params[3],\n params[4],\n x,\n y\n );\n isHit = qDistance <= lineWidth / 2;\n break;\n case 'C':\n const cDistance = CubicUtil.pointDistance(\n prePoint[0], // 上一段结束位置, 即 C 的起始点\n prePoint[1],\n params[1], // 'C' 的参数,1、2 为第一个控制点,3、4 为第二个控制点,5、6 为结束点\n params[2],\n params[3],\n params[4],\n params[5],\n params[6],\n x,\n y,\n length\n );\n isHit = cDistance <= lineWidth / 2;\n break;\n case 'A':\n // 计算点到椭圆圆弧的距离,暂时使用近似算法,后面可以改成切割法求最近距离\n const arcParams = segment.arcParams;\n const { cx, cy, rx, ry, startAngle, endAngle, xRotation } = arcParams;\n const p = [x, y, 1];\n const r = rx > ry ? rx : ry;\n const scaleX = rx > ry ? 1 : rx / ry;\n const scaleY = rx > ry ? ry / rx : 1;\n const m = transform(null, [\n ['t', -cx, -cy],\n ['r', -xRotation],\n ['s', 1 / scaleX, 1 / scaleY],\n ]);\n vec3.transformMat3(p, p, m);\n isHit = inArc(0, 0, r, startAngle, endAngle, lineWidth, p[0], p[1]);\n break;\n default:\n break;\n }\n if (isHit) {\n break;\n }\n }\n return isHit;\n}\n\n/**\n * 提取出内部的闭合多边形和非闭合的多边形,假设 path 不存在圆弧\n * @param {Array} path 路径\n * @returns {Array} 点的集合\n */\nfunction extractPolygons(path) {\n const count = path.length;\n const polygons = [];\n const polylines = [];\n let points = []; // 防止第一个命令不是 'M'\n for (let i = 0; i < count; i++) {\n const params = path[i];\n const cmd = params[0];\n if (cmd === 'M') {\n // 遇到 'M' 判定是否是新数组,新数组中没有点\n if (points.length) {\n // 如果存在点,则说明没有遇到 'Z',开始了一个新的多边形\n polylines.push(points);\n points = []; // 创建新的点\n }\n points.push([params[1], params[2]]);\n } else if (cmd === 'Z') {\n if (points.length) {\n // 存在点\n polygons.push(points);\n points = []; // 开始新的点集合\n }\n // 如果不存在点,同时 'Z',则说明是错误,不处理\n } else {\n points.push([params[1], params[2]]);\n }\n }\n // 说明 points 未放入 polygons 或者 polyline\n // 仅当只有一个 M,没有 Z 时会发生这种情况\n if (points.length > 0) {\n polylines.push(points);\n }\n return {\n polygons,\n polylines,\n };\n}\n\nexport default {\n hasArc,\n extractPolygons,\n isPointInStroke,\n ...PathUtil,\n};\n","/**\n * @fileoverview path\n * @author dxq613@gmail.com\n */\nimport { Point } from '@antv/g-base';\nimport { Cubic as CubicUtil } from '@antv/g-math';\nimport { each, isNil } from '@antv/util';\nimport ShapeBase from './base';\nimport { path2Absolute, path2Segments } from '@antv/path-util';\nimport { drawPath } from '../util/draw';\nimport isPointInPath from '../util/in-path/point-in-path';\nimport isInPolygon from '../util/in-path/polygon';\nimport PathUtil from '../util/path';\nimport * as ArrowUtil from '../util/arrow';\n\n// 是否在多个多边形内部\nfunction isInPolygons(polygons, x, y) {\n let isHit = false;\n for (let i = 0; i < polygons.length; i++) {\n const points = polygons[i];\n isHit = isInPolygon(points, x, y);\n if (isHit) {\n break;\n }\n }\n return isHit;\n}\n\nclass Path extends ShapeBase {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n startArrow: false,\n endArrow: false,\n };\n }\n\n initAttrs(attrs) {\n this._setPathArr(attrs.path);\n this.setArrow();\n }\n\n // 更新属性时,检测是否更改了 path\n onAttrChange(name: string, value: any, originValue: any) {\n super.onAttrChange(name, value, originValue);\n if (name === 'path') {\n this._setPathArr(value);\n }\n // 由于箭头的绘制依赖于 line 的诸多 attrs,因此这里不再对每个 attr 进行判断,attr 每次变化都会影响箭头的更新\n this.setArrow();\n }\n\n // 将 path 转换成绝对路径\n _setPathArr(path) {\n // 转换 path 的格式\n this.attrs.path = path2Absolute(path);\n const hasArc = PathUtil.hasArc(path);\n // 为了加速 path 的绘制、拾取和计算,这个地方可以缓存很多东西\n // 这些缓存都是第一次需要时计算和存储,虽然增加了复杂度,但是频繁调用的方法,性能有很大提升\n this.set('hasArc', hasArc);\n this.set('paramsCache', {}); // 清理缓存\n this.set('segments', null); // 延迟生成 path,在动画场景下可能不会有拾取\n this.set('curve', null);\n this.set('tCache', null);\n this.set('totalLength', null);\n }\n\n getSegments() {\n let segments = this.get('segements');\n if (!segments) {\n segments = path2Segments(this.attr('path'));\n this.set('segments', segments);\n }\n return segments;\n }\n\n setArrow() {\n const attrs = this.attr();\n const { startArrow, endArrow } = attrs;\n\n if (startArrow) {\n const tangent = this.getStartTangent();\n ArrowUtil.addStartArrow(this, attrs, tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1]);\n }\n if (endArrow) {\n const tangent = this.getEndTangent();\n ArrowUtil.addEndArrow(this, attrs, tangent[0][0], tangent[0][1], tangent[1][0], tangent[1][1]);\n }\n }\n\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n const segments = this.getSegments();\n const hasArc = this.get('hasArc');\n let isHit = false;\n if (isStroke) {\n const length = this.getTotalLength();\n isHit = PathUtil.isPointInStroke(segments, lineWidth, x, y, length);\n }\n if (!isHit && isFill) {\n if (hasArc) {\n // 存在曲线时,暂时使用 canvas 的 api 计算,后续可以进行多边形切割\n isHit = isPointInPath(this, x, y);\n } else {\n const path = this.attr('path');\n const extractResutl = PathUtil.extractPolygons(path);\n // 提取出来的多边形包含闭合的和非闭合的,在这里统一按照多边形处理\n isHit = isInPolygons(extractResutl.polygons, x, y) || isInPolygons(extractResutl.polylines, x, y);\n }\n }\n return isHit;\n }\n\n createPath(context) {\n const attrs = this.attr();\n const paramsCache = this.get('paramsCache'); // 由于计算圆弧的参数成本很大,所以要缓存\n drawPath(this, context, attrs, paramsCache);\n }\n\n afterDrawPath(context: CanvasRenderingContext2D) {\n const startArrowShape = this.get('startArrowShape');\n const endArrowShape = this.get('endArrowShape');\n if (startArrowShape) {\n startArrowShape.draw(context);\n }\n if (endArrowShape) {\n endArrowShape.draw(context);\n }\n }\n\n /**\n * Get total length of path\n * @return {number} length\n */\n getTotalLength() {\n const totalLength = this.get('totalLength');\n if (!isNil(totalLength)) {\n return totalLength;\n }\n this._calculateCurve();\n this._setTcache();\n return this.get('totalLength');\n }\n\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n getPoint(ratio: number): Point {\n let tCache = this.get('tCache');\n if (!tCache) {\n this._calculateCurve();\n this._setTcache();\n tCache = this.get('tCache');\n }\n\n let subt;\n let index;\n\n const curve = this.get('curve');\n if (!tCache || tCache.length === 0) {\n if (curve) {\n return {\n x: curve[0][1],\n y: curve[0][2],\n };\n }\n return null;\n }\n each(tCache, (v, i) => {\n if (ratio >= v[0] && ratio <= v[1]) {\n subt = (ratio - v[0]) / (v[1] - v[0]);\n index = i;\n }\n });\n\n const seg = curve[index];\n if (isNil(seg) || isNil(index)) {\n return null;\n }\n const l = seg.length;\n const nextSeg = curve[index + 1];\n return CubicUtil.pointAt(\n seg[l - 2],\n seg[l - 1],\n nextSeg[1],\n nextSeg[2],\n nextSeg[3],\n nextSeg[4],\n nextSeg[5],\n nextSeg[6],\n subt\n );\n }\n\n _calculateCurve() {\n const { path } = this.attr();\n this.set('curve', PathUtil.pathToCurve(path));\n }\n\n _setTcache() {\n let totalLength = 0;\n let tempLength = 0;\n // 每段 curve 对应起止点的长度比例列表,形如: [[0, 0.25], [0.25, 0.6]. [0.6, 0.9], [0.9, 1]]\n const tCache = [];\n let segmentT;\n let segmentL;\n let segmentN;\n let l;\n const curve = this.get('curve');\n\n if (!curve) {\n return;\n }\n\n each(curve, (segment, i) => {\n segmentN = curve[i + 1];\n l = segment.length;\n if (segmentN) {\n totalLength +=\n CubicUtil.length(\n segment[l - 2],\n segment[l - 1],\n segmentN[1],\n segmentN[2],\n segmentN[3],\n segmentN[4],\n segmentN[5],\n segmentN[6]\n ) || 0;\n }\n });\n this.set('totalLength', totalLength);\n\n if (totalLength === 0) {\n this.set('tCache', []);\n return;\n }\n\n each(curve, (segment, i) => {\n segmentN = curve[i + 1];\n l = segment.length;\n if (segmentN) {\n segmentT = [];\n segmentT[0] = tempLength / totalLength;\n segmentL = CubicUtil.length(\n segment[l - 2],\n segment[l - 1],\n segmentN[1],\n segmentN[2],\n segmentN[3],\n segmentN[4],\n segmentN[5],\n segmentN[6]\n );\n // 当 path 不连续时,segmentL 可能为空,为空时需要作为 0 处理\n tempLength += segmentL || 0;\n segmentT[1] = tempLength / totalLength;\n tCache.push(segmentT);\n }\n });\n this.set('tCache', tCache);\n }\n\n /**\n * Get start tangent vector\n * @return {Array}\n */\n getStartTangent(): number[][] {\n const segments = this.getSegments();\n let result;\n if (segments.length > 1) {\n const startPoint = segments[0].currentPoint;\n const endPoint = segments[1].currentPoint;\n const tangent = segments[1].startTangent;\n result = [];\n if (tangent) {\n result.push([startPoint[0] - tangent[0], startPoint[1] - tangent[1]]);\n result.push([startPoint[0], startPoint[1]]);\n } else {\n result.push([endPoint[0], endPoint[1]]);\n result.push([startPoint[0], startPoint[1]]);\n }\n }\n return result;\n }\n\n /**\n * Get end tangent vector\n * @return {Array}\n */\n getEndTangent(): number[][] {\n const segments = this.getSegments();\n const length = segments.length;\n let result;\n if (length > 1) {\n const startPoint = segments[length - 2].currentPoint;\n const endPoint = segments[length - 1].currentPoint;\n const tangent = segments[length - 1].endTangent;\n result = [];\n if (tangent) {\n result.push([endPoint[0] - tangent[0], endPoint[1] - tangent[1]]);\n result.push([endPoint[0], endPoint[1]]);\n } else {\n result.push([startPoint[0], startPoint[1]]);\n result.push([endPoint[0], endPoint[1]]);\n }\n }\n return result;\n }\n}\n\nexport default Path;\n","import inLine from './line';\n\nexport default function inPolyline(points: any[], lineWidth: number, x: number, y: number, isClose: boolean) {\n const count = points.length;\n if (count < 2) {\n return false;\n }\n for (let i = 0; i < count - 1; i++) {\n const x1 = points[i][0];\n const y1 = points[i][1];\n const x2 = points[i + 1][0];\n const y2 = points[i + 1][1];\n\n if (inLine(x1, y1, x2, y2, lineWidth, x, y)) {\n return true;\n }\n }\n\n // 如果封闭,则计算起始点和结束点的边\n if (isClose) {\n const first = points[0];\n const last = points[count - 1];\n if (inLine(first[0], first[1], last[0], last[1], lineWidth, x, y)) {\n return true;\n }\n }\n\n return false;\n}\n","/**\n * @fileoverview 多边形\n * @author dxq613@gmail.com\n */\n\nimport ShapeBase from './base';\nimport inPolyline from '../util/in-stroke/polyline';\nimport isInPolygon from '../util/in-path/polygon';\n\nclass Polygon extends ShapeBase {\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n const { points } = this.attr();\n let isHit = false;\n if (isStroke) {\n isHit = inPolyline(points, lineWidth, x, y, true);\n }\n if (!isHit && isFill) {\n isHit = isInPolygon(points, x, y); // isPointInPath(shape, x, y);\n }\n return isHit;\n }\n\n createPath(context) {\n const attrs = this.attr();\n const points = attrs.points;\n if (points.length < 2) {\n return;\n }\n context.beginPath();\n for (let i = 0; i < points.length; i++) {\n const point = points[i];\n if (i === 0) {\n context.moveTo(point[0], point[1]);\n } else {\n context.lineTo(point[0], point[1]);\n }\n }\n context.closePath();\n }\n}\n\nexport default Polygon;\n","/**\n * @fileoverview 多边形\n * @author dxq613@gmail.com\n */\nimport { Point } from '@antv/g-base';\nimport { Line as LineUtil } from '@antv/g-math';\nimport { Polyline as PolylineUtil } from '@antv/g-math';\nimport { each, isNil } from '@antv/util';\nimport ShapeBase from './base';\nimport inPolyline from '../util/in-stroke/polyline';\nimport * as ArrowUtil from '../util/arrow';\n\nclass PolyLine extends ShapeBase {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n startArrow: false,\n endArrow: false,\n };\n }\n\n initAttrs(attrs) {\n this.setArrow();\n }\n\n // 更新属性时,检测是否更改了 points\n onAttrChange(name: string, value: any, originValue: any) {\n super.onAttrChange(name, value, originValue);\n this.setArrow();\n if (['points'].indexOf(name) !== -1) {\n this._resetCache();\n }\n }\n\n _resetCache() {\n this.set('totalLength', null);\n this.set('tCache', null);\n }\n\n setArrow() {\n const attrs = this.attr();\n const { points, startArrow, endArrow } = this.attrs;\n const length = points.length;\n const x1 = points[0][0];\n const y1 = points[0][1];\n const x2 = points[length - 1][0];\n const y2 = points[length - 1][1];\n\n if (startArrow) {\n ArrowUtil.addStartArrow(this, attrs, points[1][0], points[1][1], x1, y1);\n }\n if (endArrow) {\n ArrowUtil.addEndArrow(this, attrs, points[length - 2][0], points[length - 2][1], x2, y2);\n }\n }\n\n // 不允许 fill\n isFill() {\n return false;\n }\n\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n // 没有设置 stroke 不能被拾取, 没有线宽不能被拾取\n if (!isStroke || !lineWidth) {\n return false;\n }\n const { points } = this.attr();\n return inPolyline(points, lineWidth, x, y, false);\n }\n\n // 始终填充\n isStroke() {\n return true;\n }\n\n createPath(context) {\n const { points, startArrow, endArrow } = this.attr();\n const length = points.length;\n if (points.length < 2) {\n return;\n }\n let x1 = points[0][0];\n let y1 = points[0][1];\n let x2 = points[length - 1][0];\n let y2 = points[length - 1][1];\n // 如果定义了箭头,并且是自定义箭头,线条相应缩进\n if (startArrow && startArrow.d) {\n const distance = ArrowUtil.getShortenOffset(x1, y1, points[1][0], points[1][1], startArrow.d);\n x1 += distance.dx;\n y1 += distance.dy;\n }\n if (endArrow && endArrow.d) {\n const distance = ArrowUtil.getShortenOffset(points[length - 2][0], points[length - 2][1], x2, y2, endArrow.d);\n x2 -= distance.dx;\n y2 -= distance.dy;\n }\n\n context.beginPath();\n context.moveTo(x1, y1);\n for (let i = 0; i < length - 1; i++) {\n const point = points[i];\n context.lineTo(point[0], point[1]);\n }\n context.lineTo(x2, y2);\n }\n\n afterDrawPath(context: CanvasRenderingContext2D) {\n const startArrowShape = this.get('startArrowShape');\n const endArrowShape = this.get('endArrowShape');\n if (startArrowShape) {\n startArrowShape.draw(context);\n }\n if (endArrowShape) {\n endArrowShape.draw(context);\n }\n }\n\n /**\n * Get length of polyline\n * @return {number} length\n */\n getTotalLength() {\n const { points } = this.attr();\n // get totalLength from cache\n const totalLength = this.get('totalLength');\n if (!isNil(totalLength)) {\n return totalLength;\n }\n this.set('totalLength', PolylineUtil.length(points));\n return this.get('totalLength');\n }\n\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n getPoint(ratio: number): Point {\n const { points } = this.attr();\n // get tCache from cache\n let tCache = this.get('tCache');\n if (!tCache) {\n this._setTcache();\n tCache = this.get('tCache');\n }\n\n let subt;\n let index;\n each(tCache, (v, i) => {\n if (ratio >= v[0] && ratio <= v[1]) {\n subt = (ratio - v[0]) / (v[1] - v[0]);\n index = i;\n }\n });\n return LineUtil.pointAt(points[index][0], points[index][1], points[index + 1][0], points[index + 1][1], subt);\n }\n\n _setTcache() {\n const { points } = this.attr();\n if (!points || points.length === 0) {\n return;\n }\n\n const totalLength = this.getTotalLength();\n if (totalLength <= 0) {\n return;\n }\n\n let tempLength = 0;\n const tCache = [];\n let segmentT;\n let segmentL;\n\n each(points, (p, i) => {\n if (points[i + 1]) {\n segmentT = [];\n segmentT[0] = tempLength / totalLength;\n segmentL = LineUtil.length(p[0], p[1], points[i + 1][0], points[i + 1][1]);\n tempLength += segmentL;\n segmentT[1] = tempLength / totalLength;\n tCache.push(segmentT);\n }\n });\n this.set('tCache', tCache);\n }\n\n /**\n * Get start tangent vector\n * @return {Array}\n */\n getStartTangent(): number[][] {\n const { points } = this.attr();\n const result = [];\n result.push([points[1][0], points[1][1]]);\n result.push([points[0][0], points[0][1]]);\n return result;\n }\n\n /**\n * Get end tangent vector\n * @return {Array}\n */\n getEndTangent(): number[][] {\n const { points } = this.attr();\n const l = points.length - 1;\n const result = [];\n result.push([points[l - 1][0], points[l - 1][1]]);\n result.push([points[l][0], points[l][1]]);\n return result;\n }\n}\n\nexport default PolyLine;\n","/**\n * @fileoverview 矩形\n * @author dxq613@gmail.com\n */\n\nimport ShapeBase from './base';\nimport { parseRadius } from '../util/parse';\nimport { inBox } from '../util/util';\nimport inRect from '../util/in-stroke/rect';\nimport inRectWithRadius from '../util/in-stroke/rect-radius';\nimport isPointInPath from '../util/in-path/point-in-path';\n\nclass Rect extends ShapeBase {\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0,\n };\n }\n\n isInStrokeOrPath(x, y, isStroke, isFill, lineWidth) {\n const attrs = this.attr();\n const minX = attrs.x;\n const minY = attrs.y;\n const width = attrs.width;\n const height = attrs.height;\n const radius = attrs.radius;\n // 无圆角时的策略\n if (!radius) {\n const halfWidth = lineWidth / 2;\n // 同时填充和带有边框\n if (isFill && isStroke) {\n return inBox(minX - halfWidth, minY - halfWidth, width + halfWidth, height + halfWidth, x, y);\n }\n // 仅填充\n if (isFill) {\n return inBox(minX, minY, width, height, x, y);\n }\n if (isStroke) {\n return inRect(minX, minY, width, height, lineWidth, x, y);\n }\n } else {\n let isHit = false;\n if (isStroke) {\n isHit = inRectWithRadius(minX, minY, width, height, radius, lineWidth, x, y);\n }\n // 仅填充时带有圆角的矩形直接通过图形拾取\n // 以后可以改成纯数学的近似拾取,将圆弧切割成多边形\n if (!isHit && isFill) {\n isHit = isPointInPath(this, x, y);\n }\n return isHit;\n }\n }\n\n createPath(context) {\n const attrs = this.attr();\n const x = attrs.x;\n const y = attrs.y;\n const width = attrs.width;\n const height = attrs.height;\n const radius = attrs.radius;\n\n context.beginPath();\n if (radius === 0) {\n // 改成原生的rect方法\n context.rect(x, y, width, height);\n } else {\n const [r1, r2, r3, r4] = parseRadius(radius);\n context.moveTo(x + r1, y);\n context.lineTo(x + width - r2, y);\n r2 !== 0 && context.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n context.lineTo(x + width, y + height - r3);\n r3 !== 0 && context.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n context.lineTo(x + r4, y + height);\n r4 !== 0 && context.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n context.lineTo(x, y + r1);\n r1 !== 0 && context.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n context.closePath();\n }\n }\n}\n\nexport default Rect;\n","import inLine from './line';\nimport inArc from './arc';\n\nexport default function rectWithRadius(minX, minY, width, height, radius, lineWidth, x, y) {\n const halfWidth = lineWidth / 2;\n return (\n inLine(minX + radius, minY, minX + width - radius, minY, lineWidth, x, y) ||\n inLine(minX + width, minY + radius, minX + width, minY + height - radius, lineWidth, x, y) ||\n inLine(minX + width - radius, minY + height, minX + radius, minY + height, lineWidth, x, y) ||\n inLine(minX, minY + height - radius, minX, minY + radius, lineWidth, x, y) ||\n inArc(minX + width - radius, minY + radius, radius, 1.5 * Math.PI, 2 * Math.PI, lineWidth, x, y) ||\n inArc(minX + width - radius, minY + height - radius, radius, 0, 0.5 * Math.PI, lineWidth, x, y) ||\n inArc(minX + radius, minY + height - radius, radius, 0.5 * Math.PI, Math.PI, lineWidth, x, y) ||\n inArc(minX + radius, minY + radius, radius, Math.PI, 1.5 * Math.PI, lineWidth, x, y)\n );\n}\n","import { inBox } from '../util';\n\nexport default function inRect(minX, minY, width, height, lineWidth, x, y) {\n const halfWidth = lineWidth / 2;\n // 将四个边看做矩形来检测,比边的检测算法要快\n return (\n inBox(minX - halfWidth, minY - halfWidth, width, lineWidth, x, y) || // 上边\n inBox(minX + width - halfWidth, minY - halfWidth, lineWidth, height, x, y) || // 右边\n inBox(minX + halfWidth, minY + height - halfWidth, width, lineWidth, x, y) || // 下边\n inBox(minX - halfWidth, minY + halfWidth, lineWidth, height, x, y)\n ); // 左边\n}\n","/**\n * @fileoverview 文本\n * @author dxq613@gmail.com\n */\n\nimport ShapeBase from './base';\nimport { isNil, isString, each } from '../util/util';\nimport { getTextHeight, assembleFont } from '@antv/g-base';\nclass Text extends ShapeBase {\n // 默认文本属性\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n text: null,\n fontSize: 12,\n fontFamily: 'sans-serif',\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n textAlign: 'start',\n textBaseline: 'bottom',\n };\n }\n\n // 仅仅使用包围盒检测来进行拾取\n isOnlyHitBox() {\n return true;\n }\n\n // 初始化时组合 font,同时判断 text 是否换行\n initAttrs(attrs) {\n this._assembleFont();\n if (attrs.text) {\n this._setText(attrs.text);\n }\n }\n // 组装字体\n _assembleFont() {\n const attrs = this.attrs;\n attrs.font = assembleFont(attrs);\n }\n\n // 如果文本换行,则缓存数组\n _setText(text) {\n let textArr = null;\n if (isString(text) && text.indexOf('\\n') !== -1) {\n textArr = text.split('\\n');\n }\n this.set('textArr', textArr);\n }\n\n // 更新属性时,检测是否更改了 font、text\n onAttrChange(name: string, value: any, originValue: any) {\n super.onAttrChange(name, value, originValue);\n if (name.startsWith('font')) {\n this._assembleFont();\n }\n if (name === 'text') {\n this._setText(value);\n }\n }\n\n // 这个方法在 text 时没有可以做的事情,如果要支持文字背景时可以考虑\n // createPath(context) {\n\n // }\n\n // 如果文本多行,需要获取文本间距\n _getSpaceingY() {\n const attrs = this.attrs;\n const lineHeight = attrs.lineHeight;\n const fontSize = attrs.fontSize * 1;\n return lineHeight ? lineHeight - fontSize : fontSize * 0.14;\n }\n\n // 绘制文本,考虑多行的场景\n _drawTextArr(context, textArr, isFill) {\n const attrs = this.attrs;\n const textBaseline = attrs.textBaseline;\n const x = attrs.x;\n const y = attrs.y;\n const fontSize = attrs.fontSize * 1;\n const spaceingY = this._getSpaceingY();\n const height = getTextHeight(attrs.text, attrs.fontSize, attrs.lineHeight);\n let subY;\n each(textArr, (subText, index: number) => {\n subY = y + index * (spaceingY + fontSize) - height + fontSize; // bottom;\n if (textBaseline === 'middle') subY += height - fontSize - (height - fontSize) / 2;\n if (textBaseline === 'top') subY += height - fontSize;\n if (!isNil(subText)) {\n if (isFill) {\n context.fillText(subText, x, subY);\n } else {\n context.strokeText(subText, x, subY);\n }\n }\n });\n }\n\n // 绘制文本,同时考虑填充和绘制边框\n _drawText(context, isFill) {\n const attrs = this.attr();\n const x = attrs.x;\n const y = attrs.y;\n const textArr = this.get('textArr');\n if (textArr) {\n this._drawTextArr(context, textArr, isFill);\n } else {\n const text = attrs.text;\n if (!isNil(text)) {\n if (isFill) {\n context.fillText(text, x, y);\n } else {\n context.strokeText(text, x, y);\n }\n }\n }\n }\n\n // 复写绘制和填充的逻辑:对于文本,应该先绘制边框,再进行填充\n strokeAndFill(context) {\n const { lineWidth, opacity, strokeOpacity, fillOpacity } = this.attrs;\n\n if (this.isStroke()) {\n if (lineWidth > 0) {\n if (!isNil(strokeOpacity) && strokeOpacity !== 1) {\n context.globalAlpha = opacity;\n }\n this.stroke(context);\n }\n }\n\n if (this.isFill()) {\n if (!isNil(fillOpacity) && fillOpacity !== 1) {\n context.globalAlpha = fillOpacity;\n this.fill(context);\n context.globalAlpha = opacity;\n } else {\n this.fill(context);\n }\n }\n\n this.afterDrawPath(context);\n }\n\n // 复写填充逻辑\n fill(context) {\n this._drawText(context, true);\n }\n\n // 复写绘制边框的逻辑\n stroke(context) {\n this._drawText(context, false);\n }\n}\n\nexport default Text;\n","import { IContainer, IElement, IGroup, IShape, isAllowCapture, multiplyVec2, invert } from '@antv/g-base';\n\nfunction invertFromMatrix(v: number[], matrix: number[]): number[] {\n if (matrix) {\n const invertMatrix = invert(matrix);\n return multiplyVec2(invertMatrix, v);\n }\n return v;\n}\n\nfunction getRefXY(element: IElement, x: number, y: number) {\n // @ts-ignore\n const totalMatrix = element.getTotalMatrix();\n if (totalMatrix) {\n const [refX, refY] = invertFromMatrix([x, y, 1], totalMatrix);\n return [refX, refY];\n }\n return [x, y];\n}\n\n// 拾取前的检测,只有通过检测才能继续拾取\nfunction preTest(element: IElement, x: number, y: number) {\n // @ts-ignore\n if (element.isCanvas && element.isCanvas()) {\n return true;\n }\n // 不允许被拾取,则返回 null\n // @ts-ignore\n if (!isAllowCapture(element) || element.cfg.isInView === false) {\n return false;\n }\n\n if (element.cfg.clipShape) {\n // 如果存在 clip\n const [refX, refY] = getRefXY(element, x, y);\n if (element.isClipped(refX, refY)) {\n return false;\n }\n }\n // @ts-ignore ,这个地方调用过于频繁\n const bbox = element.cfg.cacheCanvasBBox || element.getCanvasBBox();\n // 如果没有缓存 bbox,则说明不可见\n // 注释掉的这段可能会加速拾取,上面的语句改写成 const bbox = element.cfg.cacheCanvasBBox;\n // 这时候的拾取假设图形/分组在上一次绘制都在视窗内,但是上面已经判定了 isInView 所以意义不大\n // 现在还调用 element.getCanvasBBox(); 一个很大的原因是便于单元测试\n // if (!bbox) {\n // return false;\n // }\n if (!(x >= bbox.minX && x <= bbox.maxX && y >= bbox.minY && y <= bbox.maxY)) {\n return false;\n }\n return true;\n}\n\n// 这个方法复写了 g-base 的 getShape\nexport function getShape(container: IContainer, x: number, y: number) {\n // 没有通过检测,则返回 null\n if (!preTest(container, x, y)) {\n return null;\n }\n let shape = null;\n const children = container.getChildren();\n const count = children.length;\n for (let i = count - 1; i >= 0; i--) {\n const child = children[i];\n if (child.isGroup()) {\n shape = getShape(child as IGroup, x, y);\n } else if (preTest(child, x, y)) {\n const curShape = child as IShape;\n const [refX, refY] = getRefXY(child, x, y);\n // @ts-ignore\n if (curShape.isInShape(refX, refY)) {\n shape = child;\n }\n }\n if (shape) {\n break;\n }\n }\n return shape;\n}\n","import { AbstractCanvas } from '@antv/g-base';\nimport { ChangeType } from '@antv/g-base';\nimport { IElement } from './interfaces';\nimport { getShape } from './util/hit';\nimport * as Shape from './shape';\nimport Group from './group';\nimport { each, getPixelRatio, requestAnimationFrame, clearAnimationFrame } from './util/util';\nimport { applyAttrsToContext, drawChildren, getMergedRegion, mergeView, checkRefresh, clearChanged } from './util/draw';\n\nclass Canvas extends AbstractCanvas {\n getDefaultCfg() {\n const cfg = super.getDefaultCfg();\n // 设置渲染引擎为 canvas,只读属性\n cfg['renderer'] = 'canvas';\n // 是否自动绘制,不需要用户调用 draw 方法\n cfg['autoDraw'] = true;\n // 是否允许局部刷新图表\n cfg['localRefresh'] = true;\n cfg['refreshElements'] = [];\n // 是否在视图内自动裁剪\n cfg['clipView'] = true;\n // 是否使用快速拾取的方案,默认为 false,上层可以打开\n cfg['quickHit'] = false;\n return cfg;\n }\n\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n onCanvasChange(changeType: ChangeType) {\n /**\n * 触发画布更新的三种 changeType\n * 1. attr: 修改画布的绘图属性\n * 2. sort: 画布排序,图形的层次会发生变化\n * 3. changeSize: 改变画布大小\n */\n if (changeType === 'attr' || changeType === 'sort' || changeType === 'changeSize') {\n this.set('refreshElements', [this]);\n this.draw();\n }\n }\n\n getShapeBase() {\n return Shape;\n }\n\n getGroupBase() {\n return Group;\n }\n /**\n * 获取屏幕像素比\n */\n getPixelRatio() {\n const pixelRatio = this.get('pixelRatio') || getPixelRatio();\n // 不足 1 的取 1,超出 1 的取整\n return pixelRatio >= 1 ? Math.ceil(pixelRatio) : 1;\n }\n\n getViewRange() {\n return {\n minX: 0,\n minY: 0,\n maxX: this.cfg.width,\n maxY: this.cfg.height,\n };\n }\n\n // 复写基类的方法生成标签\n createDom(): HTMLElement {\n const element = document.createElement('canvas');\n const context = element.getContext('2d');\n // 缓存 context 对象\n this.set('context', context);\n return element;\n }\n setDOMSize(width: number, height: number) {\n super.setDOMSize(width, height);\n const context = this.get('context');\n const el = this.get('el');\n const pixelRatio = this.getPixelRatio();\n el.width = pixelRatio * width;\n el.height = pixelRatio * height;\n // 设置 canvas 元素的宽度和高度,会重置缩放,因此 context.scale 需要在每次设置宽、高后调用\n if (pixelRatio > 1) {\n context.scale(pixelRatio, pixelRatio);\n }\n }\n // 复写基类方法\n clear() {\n super.clear();\n this._clearFrame(); // 需要清理掉延迟绘制的帧\n const context = this.get('context');\n const element = this.get('el');\n context.clearRect(0, 0, element.width, element.height);\n }\n\n getShape(x: number, y: number) {\n let shape;\n if (this.get('quickHit')) {\n shape = getShape(this, x, y);\n } else {\n shape = super.getShape(x, y, null);\n }\n return shape;\n }\n // 对绘制区域边缘取整,避免浮点数问题\n _getRefreshRegion() {\n const elements = this.get('refreshElements');\n const viewRegion = this.getViewRange();\n let region;\n // 如果是当前画布整体发生了变化,则直接重绘整个画布\n if (elements.length && elements[0] === this) {\n region = viewRegion;\n } else {\n region = getMergedRegion(elements);\n if (region) {\n region.minX = Math.floor(region.minX);\n region.minY = Math.floor(region.minY);\n region.maxX = Math.ceil(region.maxX);\n region.maxY = Math.ceil(region.maxY);\n region.maxY += 1; // 在很多环境下字体的高低会不一致,附加一像素,避免残影\n const clipView = this.get('clipView');\n // 自动裁剪不在 view 内的区域\n if (clipView) {\n region = mergeView(region, viewRegion);\n }\n }\n }\n return region;\n }\n\n /**\n * 刷新图形元素,这里仅仅是放入队列,下次绘制时进行绘制\n * @param {IElement} element 图形元素\n */\n refreshElement(element: IElement) {\n const refreshElements = this.get('refreshElements');\n refreshElements.push(element);\n // if (this.get('autoDraw')) {\n // this._startDraw();\n // }\n }\n // 清理还在进行的绘制\n _clearFrame() {\n const drawFrame = this.get('drawFrame');\n if (drawFrame) {\n // 如果全部渲染时,存在局部渲染,则抛弃掉局部渲染\n clearAnimationFrame(drawFrame);\n this.set('drawFrame', null);\n this.set('refreshElements', []);\n }\n }\n\n // 手工调用绘制接口\n draw() {\n const drawFrame = this.get('drawFrame');\n if (this.get('autoDraw') && drawFrame) {\n return;\n }\n this._startDraw();\n }\n // 绘制所有图形\n _drawAll() {\n const context = this.get('context');\n const element = this.get('el');\n const children = this.getChildren() as IElement[];\n context.clearRect(0, 0, element.width, element.height);\n applyAttrsToContext(context, this);\n drawChildren(context, children);\n // 对于 https://github.com/antvis/g/issues/422 的场景,全局渲染的模式下也会记录更新的元素队列,因此全局渲染完后也需要置空\n this.set('refreshElements', []);\n }\n // 绘制局部\n _drawRegion() {\n const context = this.get('context');\n const refreshElements = this.get('refreshElements');\n const children = this.getChildren() as IElement[];\n const region = this._getRefreshRegion();\n // 需要注意可能没有 region 的场景\n // 一般发生在设置了 localRefresh ,在没有图形发生变化的情况下,用户调用了 draw\n if (region) {\n // 清理指定区域\n context.clearRect(region.minX, region.minY, region.maxX - region.minX, region.maxY - region.minY);\n // 保存上下文,设置 clip\n context.save();\n context.beginPath();\n context.rect(region.minX, region.minY, region.maxX - region.minX, region.maxY - region.minY);\n context.clip();\n applyAttrsToContext(context, this);\n // 确认更新的元素,这个优化可以提升 10 倍左右的性能,10W 个带有 group 的节点,局部渲染会从 90ms 下降到 5-6 ms\n checkRefresh(this, children, region);\n // 绘制子元素\n drawChildren(context, children, region);\n context.restore();\n } else if (refreshElements.length) {\n // 防止发生改变的 elements 没有 region 的场景,这会发生在多个情况下\n // 1. 空的 group\n // 2. 所有 elements 没有在绘图区域\n // 3. group 下面的 elements 隐藏掉\n // 如果不进行清理 hasChanged 的状态会不正确\n clearChanged(refreshElements);\n }\n each(refreshElements, (element) => {\n if (element.get('hasChanged')) {\n // 在视窗外的 Group 元素会加入到更新队列里,但实际却没有执行 draw() 逻辑,也就没有清除 hasChanged 标记\n // 即已经重绘完、但 hasChanged 标记没有清除的元素,需要统一清除掉。主要是 Group 存在问题,具体原因待排查\n element.set('hasChanged', false);\n }\n });\n this.set('refreshElements', []);\n }\n\n // 触发绘制\n _startDraw() {\n let drawFrame = this.get('drawFrame');\n if (!drawFrame) {\n drawFrame = requestAnimationFrame(() => {\n if (this.get('localRefresh')) {\n this._drawRegion();\n } else {\n this._drawAll();\n }\n this.set('drawFrame', null);\n });\n this.set('drawFrame', drawFrame);\n }\n }\n\n skipDraw() {}\n\n removeDom() {\n const el = this.get('el');\n // 需要清理 canvas 画布内容,否则ios下 创建的canvas垃圾未回收,导致Total canvas memory use exceeds问题\n // 相关问题列表\n // https://stackoverflow.com/questions/52532614/total-canvas-memory-use-exceeds-the-maximum-limit-safari-12\n // https://github.com/openlayers/openlayers/issues/9291\n el.width = 0;\n el.height = 0;\n el.parentNode.removeChild(el);\n }\n}\n\nexport default Canvas;\n","import * as Shape from './shape';\nexport * from '@antv/g-base';\nexport { IElement } from './interfaces';\nexport { Region } from './types';\nexport { default as Canvas } from './canvas';\nexport { default as Group } from './group';\nexport { Shape };\nexport { default as getArcParams } from './util/arc-params';\n\nexport const version = '0.5.12';\n","export const SHAPE_TO_TAGS = {\n rect: 'path',\n circle: 'circle',\n line: 'line',\n path: 'path',\n marker: 'path',\n text: 'text',\n polyline: 'polyline',\n polygon: 'polygon',\n image: 'image',\n ellipse: 'ellipse',\n dom: 'foreignObject',\n};\n\nexport const SVG_ATTR_MAP = {\n opacity: 'opacity',\n fillStyle: 'fill',\n fill: 'fill',\n fillOpacity: 'fill-opacity',\n strokeStyle: 'stroke',\n strokeOpacity: 'stroke-opacity',\n stroke: 'stroke',\n x: 'x',\n y: 'y',\n r: 'r',\n rx: 'rx',\n ry: 'ry',\n width: 'width',\n height: 'height',\n x1: 'x1',\n x2: 'x2',\n y1: 'y1',\n y2: 'y2',\n lineCap: 'stroke-linecap',\n lineJoin: 'stroke-linejoin',\n lineWidth: 'stroke-width',\n lineDash: 'stroke-dasharray',\n lineDashOffset: 'stroke-dashoffset',\n miterLimit: 'stroke-miterlimit',\n font: 'font',\n fontSize: 'font-size',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n fontFamily: 'font-family',\n startArrow: 'marker-start',\n endArrow: 'marker-end',\n path: 'd',\n class: 'class',\n id: 'id',\n style: 'style',\n preserveAspectRatio: 'preserveAspectRatio',\n};\n\nexport const EVENTS = [\n 'click',\n 'mousedown',\n 'mouseup',\n 'dblclick',\n 'contextmenu',\n 'mouseenter',\n 'mouseleave',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'wheel',\n];\n","import { toArray } from '@antv/util';\nimport { IShape, IGroup, IElement } from '../interfaces';\nimport { SHAPE_TO_TAGS } from '../constant';\n\n/**\n * 创建并返回图形的 svg 元素\n * @param type svg类型\n */\nexport function createSVGElement(type: string): SVGElement {\n return document.createElementNS('http://www.w3.org/2000/svg', type);\n}\n\n/**\n * 创建并返回图形的 dom 元素\n * @param {IShape} shape 图形\n * @return {SVGElement}\n */\nexport function createDom(shape: IShape) {\n const type = SHAPE_TO_TAGS[shape.type];\n const parent = shape.getParent();\n if (!type) {\n throw new Error(`the type ${shape.type} is not supported by svg`);\n }\n const element = createSVGElement(type);\n if (shape.get('id')) {\n element.id = shape.get('id');\n }\n shape.set('el', element);\n shape.set('attrs', {});\n // 对于 defs 下的 dom 节点,parent 为空,通过 context 统一挂载到 defs 节点下\n if (parent) {\n let parentNode = parent.get('el');\n if (parentNode) {\n parentNode.appendChild(element);\n } else {\n // parentNode maybe null for group\n parentNode = (parent as IGroup).createDom();\n parent.set('el', parentNode);\n parentNode.appendChild(element);\n }\n }\n return element;\n}\n\n/**\n * 对 dom 元素进行排序\n * @param {IElement} element 元素\n * @param {sorter} function 排序函数\n */\nexport function sortDom(element: IElement, sorter: (a: IElement, b: IElement) => number) {\n const el = element.get('el');\n const childList = toArray(el.children).sort(sorter);\n // create empty fragment\n const fragment = document.createDocumentFragment();\n childList.forEach((child) => {\n fragment.appendChild(child);\n });\n el.appendChild(fragment);\n}\n\n/**\n * 将 dom 元素移动到父元素下的指定位置\n * @param {SVGElement} element dom 元素\n * @param {number} targetIndex 目标位置(从 0 开始)\n */\nexport function moveTo(element: SVGElement, targetIndex: number) {\n const parentNode = element.parentNode;\n const siblings = Array.from(parentNode.childNodes).filter(\n // 要求为元素节点,且不能为 defs 节点\n (node: Node) => node.nodeType === 1 && node.nodeName.toLowerCase() !== 'defs'\n );\n // 获取目标节点\n const target = siblings[targetIndex];\n const currentIndex = siblings.indexOf(element);\n // 如果目标节点存在\n if (target) {\n // 当前索引 > 目标索引,直接插入到目标节点之前即可\n if (currentIndex > targetIndex) {\n parentNode.insertBefore(element, target);\n } else if (currentIndex < targetIndex) {\n // 当前索引 < 目标索引\n // 获取目标节点的下一个节点\n const targetNext = siblings[targetIndex + 1];\n // 如果目标节点的下一个节点存在,插入到该节点之前\n if (targetNext) {\n parentNode.insertBefore(element, targetNext);\n } else {\n // 如果该节点不存在,则追加到末尾\n parentNode.appendChild(element);\n }\n }\n } else {\n parentNode.appendChild(element);\n }\n}\n","import { createDom } from './dom';\n\nexport function setShadow(model, context) {\n const el = model.cfg.el;\n const attrs = model.attr();\n const cfg = {\n dx: attrs.shadowOffsetX,\n dy: attrs.shadowOffsetY,\n blur: attrs.shadowBlur,\n color: attrs.shadowColor,\n };\n if (!cfg.dx && !cfg.dy && !cfg.blur && !cfg.color) {\n el.removeAttribute('filter');\n } else {\n let id = context.find('filter', cfg);\n if (!id) {\n id = context.addShadow(cfg);\n }\n el.setAttribute('filter', `url(#${id})`);\n }\n}\n\nexport function setTransform(model) {\n const { matrix } = model.attr();\n if (matrix) {\n const el = model.cfg.el;\n let transform: any = [];\n for (let i = 0; i < 9; i += 3) {\n transform.push(`${matrix[i]},${matrix[i + 1]}`);\n }\n transform = transform.join(',');\n if (transform.indexOf('NaN') === -1) {\n el.setAttribute('transform', `matrix(${transform})`);\n } else {\n console.warn('invalid matrix:', matrix);\n }\n }\n}\n\nexport function setClip(model, context) {\n const clip = model.getClip();\n const el = model.get('el');\n if (!clip) {\n el.removeAttribute('clip-path');\n } else if (clip && !el.hasAttribute('clip-path')) {\n createDom(clip);\n clip.createPath(context);\n const id = context.addClip(clip);\n el.setAttribute('clip-path', `url(#${id})`);\n }\n}\n","import { ChangeType } from '@antv/g-base';\nimport { IElement } from '../interfaces';\nimport { setTransform, setClip } from './svg';\nimport { sortDom, moveTo } from './dom';\nimport Defs from '../defs';\n\nexport function drawChildren(context: Defs, children: IElement[]) {\n children.forEach((child) => {\n child.draw(context);\n });\n}\n\n/**\n * 更新元素,包括 group 和 shape\n * @param {IElement} element SVG 元素\n * @param {ChangeType} changeType 更新类型\n */\nexport function refreshElement(element: IElement, changeType: ChangeType) {\n // 对于还没有挂载到画布下的元素,canvas 可能为空\n const canvas = element.get('canvas');\n // 只有挂载到画布下,才对元素进行实际渲染\n if (canvas && canvas.get('autoDraw')) {\n const context = canvas.get('context');\n const parent = element.getParent();\n const parentChildren = parent ? parent.getChildren() : [canvas];\n const el = element.get('el');\n if (changeType === 'remove') {\n const isClipShape = element.get('isClipShape');\n // 对于 clip,不仅需要将 clipShape 对于的 SVG 元素删除,还需要将上层的 clipPath 元素也删除\n if (isClipShape) {\n const clipPathEl = el && el.parentNode;\n const defsEl = clipPathEl && clipPathEl.parentNode;\n if (clipPathEl && defsEl) {\n defsEl.removeChild(clipPathEl);\n }\n } else if (el && el.parentNode) {\n el.parentNode.removeChild(el);\n }\n } else if (changeType === 'show') {\n el.setAttribute('visibility', 'visible');\n } else if (changeType === 'hide') {\n el.setAttribute('visibility', 'hidden');\n } else if (changeType === 'zIndex') {\n moveTo(el, parentChildren.indexOf(element));\n } else if (changeType === 'sort') {\n const children = element.get('children');\n if (children && children.length) {\n sortDom(element, (a: IElement, b: IElement) => {\n return children.indexOf(a) - children.indexOf(b) ? 1 : 0;\n });\n }\n } else if (changeType === 'clear') {\n // el maybe null for group\n if (el) {\n el.innerHTML = '';\n }\n } else if (changeType === 'matrix') {\n setTransform(element);\n } else if (changeType === 'clip') {\n setClip(element, context);\n } else if (changeType === 'attr') {\n // 已在 afterAttrsChange 进行了处理,此处 do nothing\n } else if (changeType === 'add') {\n element.draw(context);\n }\n }\n}\n","import { AbstractGroup } from '@antv/g-base';\nimport { ChangeType } from '@antv/g-base';\nimport { each } from '@antv/util';\nimport { IElement, IGroup } from './interfaces';\nimport * as Shape from './shape';\nimport Defs from './defs';\nimport { drawChildren, refreshElement } from './util/draw';\nimport { setClip, setTransform } from './util/svg';\nimport { SVG_ATTR_MAP } from './constant';\nimport { createSVGElement } from './util/dom';\n\nclass Group extends AbstractGroup {\n // SVG 中分组对应实体标签 \n isEntityGroup() {\n return true;\n }\n\n createDom() {\n const element = createSVGElement('g');\n this.set('el', element);\n const parent = this.getParent();\n if (parent) {\n let parentNode = parent.get('el');\n if (parentNode) {\n parentNode.appendChild(element);\n } else {\n // parentNode maybe null for group\n parentNode = (parent as IGroup).createDom();\n parent.set('el', parentNode);\n parentNode.appendChild(element);\n }\n }\n return element;\n }\n\n // 覆盖基类的 afterAttrsChange 方法\n afterAttrsChange(targetAttrs) {\n super.afterAttrsChange(targetAttrs);\n const canvas = this.get('canvas');\n // 只有挂载到画布下,才对元素进行实际渲染\n if (canvas && canvas.get('autoDraw')) {\n const context = canvas.get('context');\n this.createPath(context, targetAttrs);\n }\n }\n\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n onCanvasChange(changeType: ChangeType) {\n refreshElement(this, changeType);\n }\n\n getShapeBase() {\n return Shape;\n }\n\n getGroupBase() {\n return Group;\n }\n\n draw(context: Defs) {\n const children = this.getChildren() as IElement[];\n const el = this.get('el');\n if (this.get('destroyed')) {\n if (el) {\n el.parentNode.removeChild(el);\n }\n } else {\n if (!el) {\n this.createDom();\n }\n setClip(this, context);\n this.createPath(context);\n if (children.length) {\n drawChildren(context, children);\n }\n }\n }\n\n /**\n * 绘制分组的路径\n * @param {Defs} context 上下文\n * @param {ShapeAttrs} targetAttrs 渲染的目标属性\n */\n createPath(context: Defs, targetAttrs?) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n setTransform(this);\n }\n}\n\nexport default Group;\n","import { AbstractShape } from '@antv/g-base';\nimport { ShapeAttrs, ChangeType, BBox } from '@antv/g-base';\nimport { IShape } from '../interfaces';\nimport Defs from '../defs';\nimport { setShadow, setTransform, setClip } from '../util/svg';\nimport { createDom } from '../util/dom';\nimport { refreshElement } from '../util/draw';\nimport { SVG_ATTR_MAP } from '../constant';\nimport * as Shape from './index';\nimport Group from '../group';\nimport { getBBoxMethod } from '@antv/g-base';\n\nclass ShapeBase extends AbstractShape implements IShape {\n type: string = 'svg';\n canFill: boolean = false;\n canStroke: boolean = false;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n // 设置默认值\n return {\n ...attrs,\n lineWidth: 1,\n lineAppendWidth: 0,\n strokeOpacity: 1,\n fillOpacity: 1,\n };\n }\n\n // 覆盖基类的 afterAttrsChange 方法\n afterAttrsChange(targetAttrs: ShapeAttrs) {\n super.afterAttrsChange(targetAttrs);\n const canvas = this.get('canvas');\n // 只有挂载到画布下,才对元素进行实际渲染\n if (canvas && canvas.get('autoDraw')) {\n const context = canvas.get('context');\n this.draw(context, targetAttrs);\n }\n }\n\n getShapeBase() {\n return Shape;\n }\n\n getGroupBase() {\n return Group;\n }\n\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n onCanvasChange(changeType: ChangeType) {\n refreshElement(this, changeType);\n }\n\n calculateBBox(): BBox {\n const el = this.get('el');\n let bbox = null;\n // 包围盒计算依赖于绘制,如果还没有生成对应的 Dom 元素,则包围盒的长宽均为 0\n if (el) {\n bbox = el.getBBox();\n } else {\n const bboxMethod = getBBoxMethod(this.get('type'));\n if (bboxMethod) {\n bbox = bboxMethod(this);\n }\n }\n if (bbox) {\n const { x, y, width, height } = bbox;\n const lineWidth = this.getHitLineWidth();\n const halfWidth = lineWidth / 2;\n const minX = x - halfWidth;\n const minY = y - halfWidth;\n const maxX = x + width + halfWidth;\n const maxY = y + height + halfWidth;\n return {\n x: minX,\n y: minY,\n minX,\n minY,\n maxX,\n maxY,\n width: width + lineWidth,\n height: height + lineWidth,\n };\n }\n return {\n x: 0,\n y: 0,\n minX: 0,\n minY: 0,\n maxX: 0,\n maxY: 0,\n width: 0,\n height: 0,\n };\n }\n\n isFill() {\n const { fill, fillStyle } = this.attr();\n return (fill || fillStyle || this.isClipShape()) && this.canFill;\n }\n\n isStroke() {\n const { stroke, strokeStyle } = this.attr();\n return (stroke || strokeStyle) && this.canStroke;\n }\n\n draw(context, targetAttrs) {\n const el = this.get('el');\n if (this.get('destroyed')) {\n if (el) {\n el.parentNode.removeChild(el);\n }\n } else {\n if (!el) {\n createDom(this);\n }\n setClip(this, context);\n this.createPath(context, targetAttrs);\n this.shadow(context, targetAttrs);\n this.strokeAndFill(context, targetAttrs);\n this.transform(targetAttrs);\n }\n }\n\n /**\n * @protected\n * 绘制图形的路径\n * @param {Defs} context 上下文\n * @param {ShapeAttrs} targetAttrs 渲染的目标属性\n */\n createPath(context: Defs, targetAttrs?: ShapeAttrs) {}\n\n // stroke and fill\n strokeAndFill(context, targetAttrs?) {\n const attrs = targetAttrs || this.attr();\n const { fill, fillStyle, stroke, strokeStyle, fillOpacity, strokeOpacity, lineWidth } = attrs;\n const el = this.get('el');\n\n if (this.canFill) {\n // 初次渲染和更新渲染的逻辑有所不同: 初次渲染值为空时,需要设置为 none,否则就会是黑色,而更新渲染则不需要\n if (!targetAttrs) {\n this._setColor(context, 'fill', fill || fillStyle);\n } else if ('fill' in attrs) {\n this._setColor(context, 'fill', fill);\n } else if ('fillStyle' in attrs) {\n // compatible with fillStyle\n this._setColor(context, 'fill', fillStyle);\n }\n if (fillOpacity) {\n el.setAttribute(SVG_ATTR_MAP['fillOpacity'], fillOpacity);\n }\n }\n\n if (this.canStroke && lineWidth > 0) {\n if (!targetAttrs) {\n this._setColor(context, 'stroke', stroke || strokeStyle);\n } else if ('stroke' in attrs) {\n this._setColor(context, 'stroke', stroke);\n } else if ('strokeStyle' in attrs) {\n // compatible with strokeStyle\n this._setColor(context, 'stroke', strokeStyle);\n }\n if (strokeOpacity) {\n el.setAttribute(SVG_ATTR_MAP['strokeOpacity'], strokeOpacity);\n }\n if (lineWidth) {\n el.setAttribute(SVG_ATTR_MAP['lineWidth'], lineWidth);\n }\n }\n }\n\n _setColor(context, attr, value) {\n const el = this.get('el');\n if (!value) {\n // need to set `none` to avoid default value\n el.setAttribute(SVG_ATTR_MAP[attr], 'none');\n return;\n }\n value = value.trim();\n if (/^[r,R,L,l]{1}[\\s]*\\(/.test(value)) {\n let id = context.find('gradient', value);\n if (!id) {\n id = context.addGradient(value);\n }\n el.setAttribute(SVG_ATTR_MAP[attr], `url(#${id})`);\n } else if (/^[p,P]{1}[\\s]*\\(/.test(value)) {\n let id = context.find('pattern', value);\n if (!id) {\n id = context.addPattern(value);\n }\n el.setAttribute(SVG_ATTR_MAP[attr], `url(#${id})`);\n } else {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n }\n\n shadow(context, targetAttrs?) {\n const attrs = this.attr();\n const { shadowOffsetX, shadowOffsetY, shadowBlur, shadowColor } = targetAttrs || attrs;\n if (shadowOffsetX || shadowOffsetY || shadowBlur || shadowColor) {\n setShadow(this, context);\n }\n }\n\n transform(targetAttrs?) {\n const attrs = this.attr();\n const { matrix } = targetAttrs || attrs;\n if (matrix) {\n setTransform(this);\n }\n }\n\n isInShape(refX: number, refY: number): boolean {\n return this.isPointInPath(refX, refY);\n }\n\n isPointInPath(refX: number, refY: number): boolean {\n const el = this.get('el');\n const canvas = this.get('canvas');\n const bbox = canvas.get('el').getBoundingClientRect();\n const clientX = refX + bbox.left;\n const clientY = refY + bbox.top;\n const element = document.elementFromPoint(clientX, clientY);\n if (element && element.isEqualNode(el)) {\n return true;\n }\n return false;\n }\n\n /**\n * 获取线拾取的宽度\n * @returns {number} 线的拾取宽度\n */\n getHitLineWidth() {\n const { lineWidth, lineAppendWidth } = this.attrs;\n if (this.isStroke()) {\n return lineWidth + lineAppendWidth;\n }\n return 0;\n }\n}\n\nexport default ShapeBase;\n","/**\n * @fileoverview circle\n * @author dengfuping_develop@163.com\n */\n\nimport { each } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Circle extends ShapeBase {\n type: string = 'circle';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n r: 0,\n };\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n // 圆和椭圆的点坐标属性不是 x, y,而是 cx, cy\n if (attr === 'x' || attr === 'y') {\n el.setAttribute(`c${attr}`, value);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n}\n\nexport default Circle;\n","/**\n * @fileoverview dom\n * @author dengfuping_develop@163.com\n */\n\nimport { each } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Dom extends ShapeBase {\n type: string = 'dom';\n canFill: boolean = false;\n canStroke: boolean = false;\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n if (typeof attrs['html'] === 'function') {\n const element = attrs['html'].call(this, attrs);\n if (element instanceof Element || element instanceof HTMLDocument) {\n const children = el.childNodes;\n for (let i = children.length - 1; i >= 0; i--) {\n el.removeChild(children[i]);\n }\n el.appendChild(element); // append to el if it's an element\n } else {\n el.innerHTML = element; // set innerHTML\n }\n } else {\n el.innerHTML = attrs['html']; // set innerHTML\n }\n }\n}\n\nexport default Dom;\n","/**\n * @fileoverview ellipse\n * @author dengfuping_develop@163.com\n */\n\nimport { each } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Ellipse extends ShapeBase {\n type: string = 'ellipse';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n rx: 0,\n ry: 0,\n };\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n // 圆和椭圆的点坐标属性不是 x, y,而是 cx, cy\n if (attr === 'x' || attr === 'y') {\n el.setAttribute(`c${attr}`, value);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n}\n\nexport default Ellipse;\n","/**\n * @fileoverview image\n * @author dengfuping_develop@163.com\n */\n\nimport { each, isString } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Image extends ShapeBase {\n type: string = 'image';\n canFill: boolean = false;\n canStroke: boolean = false;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n if (attr === 'img') {\n this._setImage(attrs.img);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n\n setAttr(name: string, value: any) {\n this.attrs[name] = value;\n if (name === 'img') {\n this._setImage(value);\n }\n }\n\n _setImage(img) {\n const attrs = this.attr();\n const el = this.get('el');\n if (isString(img)) {\n el.setAttribute('href', img);\n } else if (img instanceof (window as any).Image) {\n if (!attrs.width) {\n el.setAttribute('width', img.width);\n this.attr('width', img.width);\n }\n if (!attrs.height) {\n el.setAttribute('height', img.height);\n this.attr('height', img.height);\n }\n el.setAttribute('href', img.src);\n } else if (img instanceof HTMLElement && isString(img.nodeName) && img.nodeName.toUpperCase() === 'CANVAS') {\n // @ts-ignore\n el.setAttribute('href', img.toDataURL());\n } else if (img instanceof ImageData) {\n const canvas = document.createElement('canvas');\n canvas.setAttribute('width', `${img.width}`);\n canvas.setAttribute('height', `${img.height}`);\n canvas.getContext('2d').putImageData(img, 0, 0);\n if (!attrs.width) {\n el.setAttribute('width', `${img.width}`);\n this.attr('width', img.width);\n }\n if (!attrs.height) {\n el.setAttribute('height', `${img.height}`);\n this.attr('height', img.height);\n }\n el.setAttribute('href', canvas.toDataURL());\n }\n }\n}\n\nexport default Image;\n","/**\n * @fileoverview line\n * @author dengfuping_develop@163.com\n */\nimport { Line as LineUtil } from '@antv/g-math';\nimport { each, isObject } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Line extends ShapeBase {\n type: string = 'line';\n canFill: boolean = false;\n canStroke: boolean = true;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n startArrow: false,\n endArrow: false,\n };\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n if (attr === 'startArrow' || attr === 'endArrow') {\n if (value) {\n const id = isObject(value)\n ? context.addArrow(attrs, SVG_ATTR_MAP[attr])\n : context.getDefaultArrow(attrs, SVG_ATTR_MAP[attr]);\n el.setAttribute(SVG_ATTR_MAP[attr], `url(#${id})`);\n } else {\n el.removeAttribute(SVG_ATTR_MAP[attr]);\n }\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n\n /**\n * Use math calculation to get length of line\n * @return {number} length\n */\n getTotalLength() {\n const { x1, y1, x2, y2 } = this.attr();\n return LineUtil.length(x1, y1, x2, y2);\n }\n\n /**\n * Use math calculation to get point according to ratio as same sa Canvas version\n * @param {number} ratio\n * @return {Point} point\n */\n getPoint(ratio: number) {\n const { x1, y1, x2, y2 } = this.attr();\n return LineUtil.pointAt(x1, y1, x2, y2, ratio);\n }\n}\n\nexport default Line;\n","const Symbols = {\n // 圆\n circle(x: number, y: number, r: number): any[] {\n return [\n ['M', x, y],\n ['m', -r, 0],\n ['a', r, r, 0, 1, 0, r * 2, 0],\n ['a', r, r, 0, 1, 0, -r * 2, 0],\n ];\n },\n // 正方形\n square(x: number, y: number, r: number): any[] {\n return [['M', x - r, y - r], ['L', x + r, y - r], ['L', x + r, y + r], ['L', x - r, y + r], ['Z']];\n },\n // 菱形\n diamond(x: number, y: number, r: number): any[] {\n return [['M', x - r, y], ['L', x, y - r], ['L', x + r, y], ['L', x, y + r], ['Z']];\n },\n // 三角形\n triangle(x: number, y: number, r: number): any[] {\n const diffY = r * Math.sin((1 / 3) * Math.PI);\n return [['M', x - r, y + diffY], ['L', x, y - diffY], ['L', x + r, y + diffY], ['z']];\n },\n // 倒三角形\n triangleDown(x: number, y: number, r: number): any[] {\n const diffY = r * Math.sin((1 / 3) * Math.PI);\n return [['M', x - r, y - diffY], ['L', x + r, y - diffY], ['L', x, y + diffY], ['Z']];\n },\n};\n\nexport type SymbolFunc = (x: number, y: number, r: number) => any[];\n\nexport default {\n get(type: string): SymbolFunc {\n return Symbols[type];\n },\n\n register(type: string, func: SymbolFunc) {\n Symbols[type] = func;\n },\n\n remove(type: string) {\n delete Symbols[type];\n },\n\n getAll() {\n return Symbols;\n },\n};\n","/**\n * @fileoverview marker\n * @author dengfuping_develop@163.com\n */\n\nimport { isArray, isFunction } from '@antv/util';\nimport ShapeBase from '../base';\nimport symbolsFactory from './symbols';\n\nclass Marker extends ShapeBase {\n type: string = 'marker';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n // 作为其静态属性\n public static symbolsFactory = symbolsFactory;\n\n createPath(context) {\n const el = this.get('el');\n el.setAttribute('d', this._assembleMarker());\n }\n\n _assembleMarker() {\n const d = this._getPath();\n if (isArray(d)) {\n return d\n .map((path) => {\n return path.join(' ');\n })\n .join('');\n }\n return d;\n }\n\n _getPath(): any[] {\n const attrs = this.attr();\n const { x, y } = attrs;\n // 兼容 r 和 radius 两种写法,推荐使用 r\n const r = attrs.r || attrs.radius;\n const symbol = attrs.symbol || 'circle';\n let method;\n if (isFunction(symbol)) {\n method = symbol;\n } else {\n method = symbolsFactory.get(symbol);\n }\n\n if (!method) {\n console.warn(`${method} symbol is not exist.`);\n return null;\n }\n return method(x, y, r);\n }\n}\n\nexport default Marker;\n","/**\n * @fileoverview path\n * @author dengfuping_develop@163.com\n */\nimport { Point } from '@antv/g-base';\nimport { each, isArray, isObject } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Path extends ShapeBase {\n type: string = 'path';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n startArrow: false,\n endArrow: false,\n };\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n if (attr === 'path' && isArray(value)) {\n el.setAttribute('d', this._formatPath(value));\n } else if (attr === 'startArrow' || attr === 'endArrow') {\n if (value) {\n const id = isObject(value)\n ? context.addArrow(attrs, SVG_ATTR_MAP[attr])\n : context.getDefaultArrow(attrs, SVG_ATTR_MAP[attr]);\n el.setAttribute(SVG_ATTR_MAP[attr], `url(#${id})`);\n } else {\n el.removeAttribute(SVG_ATTR_MAP[attr]);\n }\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n\n _formatPath(value) {\n const newValue = value\n .map((path) => {\n return path.join(' ');\n })\n .join('');\n if (~newValue.indexOf('NaN')) {\n return '';\n }\n return newValue;\n }\n\n /**\n * Get total length of path\n * 尽管通过浏览器的 SVGPathElement.getTotalLength() 接口获取的 path 长度,\n * 与 Canvas 版本通过数学计算的方式得到的长度有一些细微差异,但最大误差在个位数像素,精度上可以能接受\n * @return {number} length\n */\n getTotalLength() {\n const el = this.get('el');\n return el ? el.getTotalLength() : null;\n }\n\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n getPoint(ratio: number): Point {\n const el = this.get('el');\n const totalLength = this.getTotalLength();\n // @see https://github.com/antvis/g/issues/634\n if (totalLength === 0) {\n return null;\n }\n const point = el ? el.getPointAtLength(ratio * totalLength) : null;\n return point\n ? {\n x: point.x,\n y: point.y,\n }\n : null;\n }\n}\n\nexport default Path;\n","/**\n * @fileoverview polygon\n * @author dengfuping_develop@163.com\n */\nimport { each, isArray } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Polygon extends ShapeBase {\n type: string = 'polygon';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n if (attr === 'points' && isArray(value) && value.length >= 2) {\n el.setAttribute('points', value.map((point) => `${point[0]},${point[1]}`).join(' '));\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n}\n\nexport default Polygon;\n","/**\n * @fileoverview polyline\n * @author dengfuping_develop@163.com\n */\nimport { Point } from '@antv/g-base';\nimport { Polyline as PolylineUtil } from '@antv/g-math';\nimport { Line as LineUtil } from '@antv/g-math';\nimport { each, isArray, isNil } from '@antv/util';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nclass Polyline extends ShapeBase {\n type: string = 'polyline';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n startArrow: false,\n endArrow: false,\n };\n }\n\n // 更新属性时,检测是否更改了 points\n onAttrChange(name: string, value: any, originValue: any) {\n super.onAttrChange(name, value, originValue);\n if (['points'].indexOf(name) !== -1) {\n this._resetCache();\n }\n }\n\n _resetCache() {\n this.set('totalLength', null);\n this.set('tCache', null);\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n each(targetAttrs || attrs, (value, attr) => {\n if (attr === 'points' && isArray(value) && value.length >= 2) {\n el.setAttribute('points', value.map((point) => `${point[0]},${point[1]}`).join(' '));\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n\n /**\n * Get length of polyline\n * @return {number} length\n */\n getTotalLength() {\n const { points } = this.attr();\n // get totalLength from cache\n const totalLength = this.get('totalLength');\n if (!isNil(totalLength)) {\n return totalLength;\n }\n this.set('totalLength', PolylineUtil.length(points));\n return this.get('totalLength');\n }\n\n /**\n * Get point according to ratio\n * @param {number} ratio\n * @return {Point} point\n */\n getPoint(ratio: number): Point {\n const { points } = this.attr();\n // get tCache from cache\n let tCache = this.get('tCache');\n if (!tCache) {\n this._setTcache();\n tCache = this.get('tCache');\n }\n\n let subt;\n let index;\n each(tCache, (v, i) => {\n if (ratio >= v[0] && ratio <= v[1]) {\n subt = (ratio - v[0]) / (v[1] - v[0]);\n index = i;\n }\n });\n return LineUtil.pointAt(points[index][0], points[index][1], points[index + 1][0], points[index + 1][1], subt);\n }\n\n _setTcache() {\n const { points } = this.attr();\n if (!points || points.length === 0) {\n return;\n }\n\n const totalLength = this.getTotalLength();\n if (totalLength <= 0) {\n return;\n }\n\n let tempLength = 0;\n const tCache = [];\n let segmentT;\n let segmentL;\n\n each(points, (p, i) => {\n if (points[i + 1]) {\n segmentT = [];\n segmentT[0] = tempLength / totalLength;\n segmentL = LineUtil.length(p[0], p[1], points[i + 1][0], points[i + 1][1]);\n tempLength += segmentL;\n segmentT[1] = tempLength / totalLength;\n tCache.push(segmentT);\n }\n });\n this.set('tCache', tCache);\n }\n\n /**\n * Get start tangent vector\n * @return {Array}\n */\n getStartTangent(): number[][] {\n const { points } = this.attr();\n const result = [];\n result.push([points[1][0], points[1][1]]);\n result.push([points[0][0], points[0][1]]);\n return result;\n }\n\n /**\n * Get end tangent vector\n * @return {Array}\n */\n getEndTangent(): number[][] {\n const { points } = this.attr();\n const l = points.length - 1;\n const result = [];\n result.push([points[l - 1][0], points[l - 1][1]]);\n result.push([points[l][0], points[l][1]]);\n return result;\n }\n}\n\nexport default Polyline;\n","/**\n * @fileoverview rect\n * @author dengfuping_develop@163.com\n */\n\nimport { each, isArray } from '@antv/util';\nimport ShapeBase from './base';\nimport { SVG_ATTR_MAP } from '../constant';\nimport { parseRadius } from '../util/format';\n\nclass Rect extends ShapeBase {\n type: string = 'rect';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0,\n };\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n // 加上状态量,用来标记 path 是否已组装\n let completed = false;\n // 和组装 path 相关的绘图属性\n const pathRelatedAttrs = ['x', 'y', 'width', 'height', 'radius'];\n each(targetAttrs || attrs, (value, attr) => {\n if (pathRelatedAttrs.indexOf(attr) !== -1 && !completed) {\n el.setAttribute('d', this._assembleRect(attrs));\n completed = true;\n } else if (pathRelatedAttrs.indexOf(attr) === -1 && SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n }\n\n _assembleRect(attrs) {\n const x = attrs.x;\n const y = attrs.y;\n const w = attrs.width;\n const h = attrs.height;\n const radius = attrs.radius;\n\n if (!radius) {\n return `M ${x},${y} l ${w},0 l 0,${h} l${-w} 0 z`;\n }\n const r = parseRadius(radius);\n if (isArray(radius)) {\n if (radius.length === 1) {\n r.r1 = r.r2 = r.r3 = r.r4 = radius[0];\n } else if (radius.length === 2) {\n r.r1 = r.r3 = radius[0];\n r.r2 = r.r4 = radius[1];\n } else if (radius.length === 3) {\n r.r1 = radius[0];\n r.r2 = r.r4 = radius[1];\n r.r3 = radius[2];\n } else {\n r.r1 = radius[0];\n r.r2 = radius[1];\n r.r3 = radius[2];\n r.r4 = radius[3];\n }\n } else {\n r.r1 = r.r2 = r.r3 = r.r4 = radius;\n }\n const d = [\n [`M ${x + r.r1},${y}`],\n [`l ${w - r.r1 - r.r2},0`],\n [`a ${r.r2},${r.r2},0,0,1,${r.r2},${r.r2}`],\n [`l 0,${h - r.r2 - r.r3}`],\n [`a ${r.r3},${r.r3},0,0,1,${-r.r3},${r.r3}`],\n [`l ${r.r3 + r.r4 - w},0`],\n [`a ${r.r4},${r.r4},0,0,1,${-r.r4},${-r.r4}`],\n [`l 0,${r.r4 + r.r1 - h}`],\n [`a ${r.r1},${r.r1},0,0,1,${r.r1},${-r.r1}`],\n ['z'],\n ];\n return d.join(' ');\n }\n}\n\nexport default Rect;\n","import { each, isArray, isString } from '@antv/util';\n\nconst regexTags = /[MLHVQTCSAZ]([^MLHVQTCSAZ]*)/gi;\nconst regexDot = /[^\\s,]+/gi;\n\nexport function parseRadius(radius) {\n let r1 = 0;\n let r2 = 0;\n let r3 = 0;\n let r4 = 0;\n if (isArray(radius)) {\n if (radius.length === 1) {\n r1 = r2 = r3 = r4 = radius[0];\n } else if (radius.length === 2) {\n r1 = r3 = radius[0];\n r2 = r4 = radius[1];\n } else if (radius.length === 3) {\n r1 = radius[0];\n r2 = r4 = radius[1];\n r3 = radius[2];\n } else {\n r1 = radius[0];\n r2 = radius[1];\n r3 = radius[2];\n r4 = radius[3];\n }\n } else {\n r1 = r2 = r3 = r4 = radius;\n }\n return {\n r1,\n r2,\n r3,\n r4,\n };\n}\n\nexport function parsePath(path) {\n path = path || [];\n if (isArray(path)) {\n return path;\n }\n\n if (isString(path)) {\n path = path.match(regexTags);\n each(path, (item, index) => {\n item = item.match(regexDot);\n if (item[0].length > 1) {\n const tag = item[0].charAt(0);\n item.splice(1, 0, item[0].substr(1));\n item[0] = tag;\n }\n each(item, (sub, i) => {\n if (!isNaN(sub)) {\n item[i] = +sub;\n }\n });\n path[index] = item;\n });\n return path;\n }\n}\n","/**\n * @fileoverview text\n * @author dengfuping_develop@163.com\n */\n\nimport { each } from '@antv/util';\nimport { detect } from 'detect-browser';\nimport { setTransform } from '../util/svg';\nimport { SVG_ATTR_MAP } from '../constant';\nimport ShapeBase from './base';\n\nconst LETTER_SPACING = 0.3;\n\nconst BASELINE_MAP = {\n top: 'before-edge',\n middle: 'central',\n bottom: 'after-edge',\n alphabetic: 'baseline',\n hanging: 'hanging',\n};\n\n// for FireFox\nconst BASELINE_MAP_FOR_FIREFOX = {\n top: 'text-before-edge',\n middle: 'central',\n bottom: 'text-after-edge',\n alphabetic: 'alphabetic',\n hanging: 'hanging',\n};\n\nconst ANCHOR_MAP = {\n left: 'left',\n start: 'left',\n center: 'middle',\n right: 'end',\n end: 'end',\n};\n\nclass Text extends ShapeBase {\n type: string = 'text';\n canFill: boolean = true;\n canStroke: boolean = true;\n\n getDefaultAttrs() {\n const attrs = super.getDefaultAttrs();\n return {\n ...attrs,\n x: 0,\n y: 0,\n text: null,\n fontSize: 12,\n fontFamily: 'sans-serif',\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n textAlign: 'start',\n textBaseline: 'bottom',\n };\n }\n\n createPath(context, targetAttrs) {\n const attrs = this.attr();\n const el = this.get('el');\n this._setFont();\n each(targetAttrs || attrs, (value, attr) => {\n if (attr === 'text') {\n this._setText(`${value}`);\n } else if (attr === 'matrix' && value) {\n setTransform(this);\n } else if (SVG_ATTR_MAP[attr]) {\n el.setAttribute(SVG_ATTR_MAP[attr], value);\n }\n });\n el.setAttribute('paint-order', 'stroke');\n el.setAttribute('style', 'stroke-linecap:butt; stroke-linejoin:miter;');\n }\n\n _setFont() {\n const el = this.get('el');\n const { textBaseline, textAlign } = this.attr();\n\n const browser = detect();\n if (browser && browser.name === 'firefox') {\n // compatible with FireFox browser, ref: https://github.com/antvis/g/issues/119\n el.setAttribute('dominant-baseline', BASELINE_MAP_FOR_FIREFOX[textBaseline] || 'alphabetic');\n } else {\n el.setAttribute('alignment-baseline', BASELINE_MAP[textBaseline] || 'baseline');\n }\n\n el.setAttribute('text-anchor', ANCHOR_MAP[textAlign] || 'left');\n }\n\n _setText(text) {\n const el = this.get('el');\n const { x, textBaseline: baseline = 'bottom' } = this.attr();\n if (!text) {\n el.innerHTML = '';\n } else if (~text.indexOf('\\n')) {\n const textArr = text.split('\\n');\n const textLen = textArr.length - 1;\n let arr = '';\n each(textArr, (segment, i: number) => {\n if (i === 0) {\n if (baseline === 'alphabetic') {\n arr += `${segment}`;\n } else if (baseline === 'top') {\n arr += `${segment}`;\n } else if (baseline === 'middle') {\n arr += `${segment}`;\n } else if (baseline === 'bottom') {\n arr += `${segment}`;\n } else if (baseline === 'hanging') {\n arr += `${segment}`;\n }\n } else {\n arr += `${segment}`;\n }\n });\n el.innerHTML = arr;\n } else {\n el.innerHTML = text;\n }\n }\n}\n\nexport default Text;\n","/**\n * @fileoverview gradient\n * @author dengfuping_develop@163.com\n */\n\nimport { each, mod, toRadian, uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\n\nconst regexLG = /^l\\s*\\(\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nconst regexRG = /^r\\s*\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)\\s*(.*)/i;\nconst regexColorStop = /[\\d.]+:(#[^\\s]+|[^)]+\\))/gi;\n\nfunction addStop(steps) {\n const arr = steps.match(regexColorStop);\n if (!arr) {\n return '';\n }\n let stops = '';\n arr.sort((a, b) => {\n a = a.split(':');\n b = b.split(':');\n return Number(a[0]) - Number(b[0]);\n });\n each(arr, (item: any) => {\n item = item.split(':');\n stops += ``;\n });\n return stops;\n}\n\nfunction parseLineGradient(color, el) {\n const arr = regexLG.exec(color);\n const angle = mod(toRadian(parseFloat(arr[1])), Math.PI * 2);\n const steps = arr[2];\n let start;\n let end;\n\n if (angle >= 0 && angle < 0.5 * Math.PI) {\n start = {\n x: 0,\n y: 0,\n };\n end = {\n x: 1,\n y: 1,\n };\n } else if (0.5 * Math.PI <= angle && angle < Math.PI) {\n start = {\n x: 1,\n y: 0,\n };\n end = {\n x: 0,\n y: 1,\n };\n } else if (Math.PI <= angle && angle < 1.5 * Math.PI) {\n start = {\n x: 1,\n y: 1,\n };\n end = {\n x: 0,\n y: 0,\n };\n } else {\n start = {\n x: 0,\n y: 1,\n };\n end = {\n x: 1,\n y: 0,\n };\n }\n\n const tanTheta = Math.tan(angle);\n const tanTheta2 = tanTheta * tanTheta;\n\n const x = (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.x;\n const y = (tanTheta * (end.x - start.x + tanTheta * (end.y - start.y))) / (tanTheta2 + 1) + start.y;\n el.setAttribute('x1', start.x);\n el.setAttribute('y1', start.y);\n el.setAttribute('x2', x);\n el.setAttribute('y2', y);\n el.innerHTML = addStop(steps);\n}\n\nfunction parseRadialGradient(color, self) {\n const arr = regexRG.exec(color);\n const cx = parseFloat(arr[1]);\n const cy = parseFloat(arr[2]);\n const r = parseFloat(arr[3]);\n const steps = arr[4];\n self.setAttribute('cx', cx);\n self.setAttribute('cy', cy);\n self.setAttribute('r', r);\n self.innerHTML = addStop(steps);\n}\n\nclass Gradient {\n el: SVGGradientElement;\n id: string;\n cfg: {\n [key: string]: any;\n } = {};\n\n constructor(cfg) {\n let el = null;\n const id = uniqueId('gradient_');\n if (cfg.toLowerCase()[0] === 'l') {\n el = createSVGElement('linearGradient');\n parseLineGradient(cfg, el);\n } else {\n el = createSVGElement('radialGradient');\n parseRadialGradient(cfg, el);\n }\n el.setAttribute('id', id);\n this.el = el;\n this.id = id;\n this.cfg = cfg;\n return this;\n }\n\n match(type, attr) {\n return this.cfg === attr;\n }\n}\n\nexport default Gradient;\n","/**\n * @fileoverview shadow\n * @author dengfuping_develop@163.com\n */\n\nimport { each, uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\n\nconst ATTR_MAP = {\n shadowColor: 'color',\n shadowOpacity: 'opacity',\n shadowBlur: 'blur',\n shadowOffsetX: 'dx',\n shadowOffsetY: 'dy',\n};\n\nconst SHADOW_DIMENSION = {\n x: '-40%',\n y: '-40%',\n width: '200%',\n height: '200%',\n};\n\nclass Shadow {\n type: string = 'filter';\n id: string;\n el: SVGFilterElement;\n cfg: {\n [key: string]: any;\n } = {};\n\n constructor(cfg) {\n this.type = 'filter';\n const el = createSVGElement('filter') as SVGFilterElement;\n // expand the filter region to fill in shadows\n each(SHADOW_DIMENSION, (v, k) => {\n el.setAttribute(k, v);\n });\n this.el = el;\n this.id = uniqueId('filter_');\n this.el.id = this.id;\n this.cfg = cfg;\n this._parseShadow(cfg, el);\n return this;\n }\n\n match(type, cfg) {\n if (this.type !== type) {\n return false;\n }\n let flag = true;\n const config = this.cfg;\n each(Object.keys(config), (attr) => {\n if (config[attr] !== cfg[attr]) {\n flag = false;\n return false;\n }\n });\n return flag;\n }\n\n update(name, value) {\n const config = this.cfg;\n config[ATTR_MAP[name]] = value;\n this._parseShadow(config, this.el);\n return this;\n }\n\n _parseShadow(config, el) {\n const child = ``;\n el.innerHTML = child;\n }\n}\n\nexport default Shadow;\n","/**\n * @fileoverview arrow\n * @author dengfuping_develop@163.com\n */\n\nimport { isArray, uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\n\nclass Arrow {\n id: string;\n el: SVGMarkerElement;\n child: SVGPathElement | any; // TODO G.Shape, not any\n stroke: string;\n cfg: {\n [key: string]: any;\n } = {};\n\n constructor(attrs, type) {\n const el = createSVGElement('marker') as SVGMarkerElement;\n const id = uniqueId('marker_');\n el.setAttribute('id', id);\n const shape = createSVGElement('path');\n shape.setAttribute('stroke', attrs.stroke || 'none');\n shape.setAttribute('fill', attrs.fill || 'none');\n el.appendChild(shape);\n el.setAttribute('overflow', 'visible');\n el.setAttribute('orient', 'auto-start-reverse');\n this.el = el;\n this.child = shape;\n this.id = id;\n const cfg = attrs[type === 'marker-start' ? 'startArrow' : 'endArrow'];\n this.stroke = attrs.stroke || '#000';\n if (cfg === true) {\n this._setDefaultPath(type, shape);\n } else {\n this.cfg = cfg; // when arrow config exists\n this._setMarker(attrs.lineWidth, shape);\n }\n return this;\n }\n\n match() {\n return false;\n }\n\n _setDefaultPath(type, el) {\n const parent = this.el;\n // 默认箭头的边长为 10,夹角为 60 度\n el.setAttribute('d', `M0,0 L${10 * Math.cos(Math.PI / 6)},5 L0,10`);\n parent.setAttribute('refX', `${10 * Math.cos(Math.PI / 6)}`);\n parent.setAttribute('refY', `${5}`);\n }\n\n _setMarker(r, el) {\n const parent = this.el;\n let path = this.cfg.path;\n const d = this.cfg.d;\n\n if (isArray(path)) {\n path = path\n .map((segment) => {\n return segment.join(' ');\n })\n .join('');\n }\n el.setAttribute('d', path);\n parent.appendChild(el);\n if (d) {\n parent.setAttribute('refX', `${d / r}`);\n }\n }\n\n update(fill) {\n const child = this.child;\n if (child.attr) {\n child.attr('fill', fill);\n } else {\n child.setAttribute('fill', fill);\n }\n }\n}\n\nexport default Arrow;\n","/**\n * @fileoverview clip\n * @author dengfuping_develop@163.com\n */\n\nimport { uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\n\nclass Clip {\n type: string = 'clip';\n id: string;\n el: SVGClipPathElement;\n cfg: {\n [key: string]: any;\n } = {};\n\n constructor(cfg) {\n const el = createSVGElement('clipPath') as SVGClipPathElement;\n this.el = el;\n this.id = uniqueId('clip_');\n el.id = this.id;\n const shapeEl = cfg.cfg.el;\n el.appendChild(shapeEl);\n this.cfg = cfg;\n return this;\n }\n\n match() {\n return false;\n }\n\n remove() {\n const el = this.el;\n el.parentNode.removeChild(el);\n }\n}\n\nexport default Clip;\n","/**\n * @fileoverview pattern\n * @author dengfuping_develop@163.com\n */\n\nimport { uniqueId } from '@antv/util';\nimport { createSVGElement } from '../util/dom';\n\nconst regexPR = /^p\\s*\\(\\s*([axyn])\\s*\\)\\s*(.*)/i;\n\nclass Pattern {\n el: SVGPatternElement;\n id: string;\n cfg: {\n [key: string]: any;\n } = {};\n\n constructor(cfg) {\n const el = createSVGElement('pattern') as SVGPatternElement;\n el.setAttribute('patternUnits', 'userSpaceOnUse');\n const child = createSVGElement('image');\n el.appendChild(child);\n const id = uniqueId('pattern_');\n el.id = id;\n this.el = el;\n this.id = id;\n this.cfg = cfg;\n const arr = regexPR.exec(cfg);\n const source = arr[2];\n child.setAttribute('href', source);\n const img = new Image();\n if (!source.match(/^data:/i)) {\n img.crossOrigin = 'Anonymous';\n }\n img.src = source;\n function onload() {\n el.setAttribute('width', `${img.width}`);\n el.setAttribute('height', `${img.height}`);\n }\n if (img.complete) {\n onload();\n } else {\n img.onload = onload;\n // Fix onload() bug in IE9\n img.src = img.src;\n }\n\n return this;\n }\n\n match(type, attr) {\n return this.cfg === attr;\n }\n}\n\nexport default Pattern;\n","/**\n * @fileoverview defs\n * @author dengfuping_develop@163.com\n */\n\nimport { uniqueId } from '@antv/util';\nimport Gradient from './gradient';\nimport Shadow from './shadow';\nimport Arrow from './arrow';\nimport Clip from './clip';\nimport Pattern from './pattern';\nimport { createSVGElement } from '../util/dom';\n\nclass Defs {\n id: string;\n defaultArrow: {};\n children: any[];\n el: SVGDefsElement;\n canvas: SVGSVGElement;\n\n constructor(canvas) {\n const el = createSVGElement('defs') as SVGDefsElement;\n const id = uniqueId('defs_');\n el.id = id;\n canvas.appendChild(el);\n this.children = [];\n this.defaultArrow = {};\n this.el = el;\n this.canvas = canvas;\n }\n\n find(type, attr) {\n const children = this.children;\n let result = null;\n for (let i = 0; i < children.length; i++) {\n if (children[i].match(type, attr)) {\n result = children[i].id;\n break;\n }\n }\n return result;\n }\n\n findById(id) {\n const children = this.children;\n let flag = null;\n for (let i = 0; i < children.length; i++) {\n if (children[i].id === id) {\n flag = children[i];\n break;\n }\n }\n return flag;\n }\n\n add(item) {\n this.children.push(item);\n item.canvas = this.canvas;\n item.parent = this;\n }\n\n getDefaultArrow(attrs, name) {\n const stroke = attrs.stroke || attrs.strokeStyle;\n if (this.defaultArrow[stroke]) {\n return this.defaultArrow[stroke].id;\n }\n const arrow = new Arrow(attrs, name);\n this.defaultArrow[stroke] = arrow;\n this.el.appendChild(arrow.el);\n this.add(arrow);\n return arrow.id;\n }\n\n addGradient(cfg) {\n const gradient = new Gradient(cfg);\n this.el.appendChild(gradient.el);\n this.add(gradient);\n return gradient.id;\n }\n\n addArrow(attrs, name) {\n const arrow = new Arrow(attrs, name);\n this.el.appendChild(arrow.el);\n this.add(arrow);\n return arrow.id;\n }\n\n addShadow(cfg) {\n const shadow = new Shadow(cfg);\n this.el.appendChild(shadow.el);\n this.add(shadow);\n return shadow.id;\n }\n\n addPattern(cfg) {\n const pattern = new Pattern(cfg);\n this.el.appendChild(pattern.el);\n this.add(pattern);\n return pattern.id;\n }\n\n addClip(cfg) {\n const clip = new Clip(cfg);\n this.el.appendChild(clip.el);\n this.add(clip);\n return clip.id;\n }\n}\n\nexport default Defs;\n","import { AbstractCanvas, IShape } from '@antv/g-base';\nimport { ChangeType } from '@antv/g-base';\nimport { IElement } from './interfaces';\nimport { SHAPE_TO_TAGS } from './constant';\nimport { drawChildren } from './util/draw';\nimport { setTransform, setClip } from './util/svg';\nimport { sortDom, createSVGElement } from './util/dom';\nimport * as Shape from './shape';\nimport Group from './group';\nimport Defs from './defs';\n\nclass Canvas extends AbstractCanvas {\n constructor(cfg) {\n super({\n ...cfg,\n autoDraw: true,\n // 设置渲染引擎为 canvas,只读属性\n renderer: 'svg',\n });\n }\n\n getShapeBase() {\n return Shape;\n }\n\n getGroupBase() {\n return Group;\n }\n\n // 覆盖 Container 中通过遍历的方式获取 shape 对象的逻辑,直接走 SVG 的 dom 拾取即可\n getShape(x: number, y: number, ev: Event): IShape {\n let target = ev.target || ev.srcElement;\n if (!SHAPE_TO_TAGS[target.tagName]) {\n let parent = target.parentNode;\n while (parent && !SHAPE_TO_TAGS[parent.tagName]) {\n parent = parent.parentNode;\n }\n target = parent;\n }\n return this.find((child) => child.get('el') === target) as IShape;\n }\n\n // 复写基类的方法生成标签\n createDom() {\n const element = createSVGElement('svg') as SVGSVGElement;\n const context = new Defs(element);\n element.setAttribute('width', `${this.get('width')}`);\n element.setAttribute('height', `${this.get('height')}`);\n // 缓存 context 对象\n this.set('context', context);\n return element;\n }\n\n /**\n * 一些方法调用会引起画布变化\n * @param {ChangeType} changeType 改变的类型\n */\n onCanvasChange(changeType: ChangeType) {\n const context = this.get('context');\n const el = this.get('el');\n if (changeType === 'sort') {\n const children = this.get('children');\n if (children && children.length) {\n sortDom(this, (a: IElement, b: IElement) => {\n return children.indexOf(a) - children.indexOf(b) ? 1 : 0;\n });\n }\n } else if (changeType === 'clear') {\n // el maybe null for canvas\n if (el) {\n // 清空 SVG 元素\n el.innerHTML = '';\n const defsEl = context.el;\n // 清空 defs 元素\n defsEl.innerHTML = '';\n // 将清空后的 defs 元素挂载到 el 下\n el.appendChild(defsEl);\n }\n } else if (changeType === 'matrix') {\n setTransform(this);\n } else if (changeType === 'clip') {\n setClip(this, context);\n } else if (changeType === 'changeSize') {\n el.setAttribute('width', `${this.get('width')}`);\n el.setAttribute('height', `${this.get('height')}`);\n }\n }\n\n // 复写基类的 draw 方法\n draw() {\n const context = this.get('context');\n const children = this.getChildren() as IElement[];\n setClip(this, context);\n if (children.length) {\n drawChildren(context, children);\n }\n }\n}\n\nexport default Canvas;\n","import * as Shape from './shape';\n\nexport * from '@antv/g-base';\nexport { IElement, IGroup, IShape } from './interfaces';\nexport { default as Canvas } from './canvas';\nexport { default as Group } from './group';\nexport { Shape };\n\nexport const version = '0.5.6';\n","import { FIELD_ORIGIN } from '../constant';\nimport { MappingDatum, ShapeInfo } from '../interface';\nimport Geometry, { GeometryCfg } from './base';\nimport Element from './element';\n/** 引入对应的 ShapeFactory */\nimport './shape/line';\nimport { isModelChange } from './util/is-model-change';\nimport { diff } from './util/diff';\n\n/** Path 构造函数参数类型 */\nexport interface PathCfg extends GeometryCfg {\n /** 是否连接空值 */\n connectNulls?: boolean;\n /** 单个孤立数据点是否展示 */\n showSinglePoint?: boolean;\n}\n\n/**\n * Path 几何标记。\n * 用于绘制路径图等。\n */\nexport default class Path extends Geometry {\n public readonly type: string = 'path';\n public readonly shapeType: string = 'line';\n /** 是否连接空值 */\n public connectNulls: boolean;\n /** 单个孤立数据点是否展示 */\n public showSinglePoint: boolean;\n\n constructor(cfg: PathCfg) {\n super(cfg);\n\n const { connectNulls = false, showSinglePoint = true } = cfg;\n this.connectNulls = connectNulls;\n this.showSinglePoint = showSinglePoint;\n }\n\n /**\n * 创建所有的 Element 实例,对于 Path、Line、Area,一组数据对应一个 Element。\n * @param mappingData\n * @param [isUpdate]\n * @returns elements\n */\n protected updateElements(mappingDataArray: MappingDatum[][], isUpdate: boolean = false) {\n // Path 的每个 element 对应一组数据\n const keyData = new Map();\n const keyIndex = new Map();\n const keys: string[] = [];\n\n let index = 0;\n for (let i = 0; i < mappingDataArray.length; i++) {\n const mappingData = mappingDataArray[i];\n const key = this.getElementId(mappingData);\n keys.push(key);\n keyData.set(key, mappingData);\n keyIndex.set(key, index);\n index++;\n }\n\n this.elements = new Array(index);\n\n const { added, updated, removed } = diff(this.lastElementsMap, keys);\n\n for (const key of added) {\n const mappingData = keyData.get(key);\n const shapeFactory = this.getShapeFactory();\n const shapeCfg = this.getShapeInfo(mappingData);\n const i = keyIndex.get(key);\n const element = new Element({\n shapeFactory,\n container: this.container,\n offscreenGroup: this.getOffscreenGroup(),\n elementIndex: i,\n });\n element.geometry = this;\n element.animate = this.animateOption;\n element.draw(shapeCfg, isUpdate); // 绘制 shape\n this.elementsMap[key] = element;\n this.elements[i] = element;\n }\n\n for (const key of updated) {\n const mappingData = keyData.get(key);\n const element = this.lastElementsMap[key];\n const i = keyIndex.get(key);\n const shapeCfg = this.getShapeInfo(mappingData);\n const preShapeCfg = element.getModel();\n if (this.isCoordinateChanged || isModelChange(preShapeCfg, shapeCfg)) {\n element.animate = this.animateOption;\n // 通过绘制数据的变更来判断是否需要更新,因为用户有可能会修改图形属性映射\n element.update(shapeCfg); // 更新对应的 element\n }\n this.elementsMap[key] = element;\n this.elements[i] = element;\n }\n\n for (const key of removed) {\n const element = this.lastElementsMap[key];\n // 更新动画配置,用户有可能在更新之前有对动画进行配置操作\n element.animate = this.animateOption;\n element.destroy();\n }\n }\n\n /**\n * 获取组成一条线(一组数据)的所有点以及数据\n * @param mappingData 映射后的数组\n */\n protected getPointsAndData(mappingData: MappingDatum[]) {\n const points = [];\n const data = [];\n\n for (let i = 0, len = mappingData.length; i < len; i++) {\n const obj = mappingData[i];\n points.push({\n x: obj.x,\n y: obj.y,\n });\n data.push(obj[FIELD_ORIGIN]);\n }\n\n return {\n points,\n data,\n };\n }\n\n private getShapeInfo(mappingData: MappingDatum[]): ShapeInfo {\n const shapeCfg = this.getDrawCfg(mappingData[0]);\n const { points, data } = this.getPointsAndData(mappingData);\n shapeCfg.mappingData = mappingData;\n shapeCfg.data = data;\n shapeCfg.isStack = !!this.getAdjust('stack');\n shapeCfg.points = points;\n shapeCfg.connectNulls = this.connectNulls;\n shapeCfg.showSinglePoint = this.showSinglePoint;\n\n return shapeCfg;\n }\n}\n","import { each } from '@antv/util';\nimport { Coordinate, PathCommand } from '../../../dependents';\nimport { Point, Position, Shape, ShapeInfo } from '../../../interface';\n\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath, getSplinePath } from '../util/path';\n\nfunction getPath(\n points: Point[],\n isInCircle: boolean,\n smooth: boolean,\n registeredShape: Shape,\n constraint?: Position[]\n): PathCommand[] {\n let path = [];\n\n if (points.length) {\n const topLinePoints = []; // area 区域上部分\n let bottomLinePoints = []; // area 区域下部分\n for (let i = 0, len = points.length; i < len; i++) {\n const point = points[i];\n topLinePoints.push(point[1]);\n bottomLinePoints.push(point[0]);\n }\n bottomLinePoints = bottomLinePoints.reverse();\n\n each([topLinePoints, bottomLinePoints], (pointsData, index) => {\n let subPath = [];\n const parsedPoints = registeredShape.parsePoints(pointsData);\n const p1 = parsedPoints[0];\n\n if (topLinePoints.length === 1 && bottomLinePoints.length === 1) {\n // 都只有一个点,绘制一条竖线\n subPath =\n index === 0\n ? [\n ['M', p1.x - 0.5, p1.y],\n ['L', p1.x + 0.5, p1.y],\n ]\n : [\n ['L', p1.x + 0.5, p1.y],\n ['L', p1.x - 0.5, p1.y],\n ];\n } else {\n if (isInCircle) {\n parsedPoints.push({ x: p1.x, y: p1.y });\n }\n if (smooth) {\n subPath = getSplinePath(parsedPoints, false, constraint);\n } else {\n subPath = getLinePath(parsedPoints, false);\n }\n if (index > 0) {\n subPath[0][0] = 'L';\n }\n }\n\n path = path.concat(subPath);\n });\n\n path.push(['Z']);\n }\n\n return path;\n}\n\n/**\n * @ignore\n * Gets shape attrs\n * @param cfg\n * @param isStroke\n * @param smooth\n * @param registeredShape\n * @param [constraint]\n * @returns\n */\nexport function getShapeAttrs(\n cfg: ShapeInfo,\n isStroke: boolean,\n smooth: boolean,\n registeredShape: Shape,\n constraint?: Position[]\n) {\n const attrs = getStyle(cfg, isStroke, !isStroke, 'lineWidth');\n const { connectNulls, isInCircle, points, showSinglePoint } = cfg;\n const pathPoints = getPathPoints(points, connectNulls, showSinglePoint); // 根据 connectNulls 配置获取图形关键点\n\n let path = [];\n for (let i = 0, len = pathPoints.length; i < len; i++) {\n const eachPoints = pathPoints[i];\n path = path.concat(getPath(eachPoints, isInCircle, smooth, registeredShape, constraint));\n }\n attrs.path = path;\n\n return attrs;\n}\n\n/**\n * @ignore\n * Gets constraint\n * @param coordinate\n * @returns constraint\n */\nexport function getConstraint(coordinate: Coordinate): Position[] {\n const { start, end } = coordinate;\n return [\n [start.x, end.y],\n [end.x, start.y],\n ];\n}\n","import { isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getShapeAttrs } from './util';\n\nconst AreaShapeFactory = registerShapeFactory('area', {\n defaultShapeType: 'area',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n // area 基本标记的绘制需要获取上下两边的顶点\n const { x, y0 } = pointInfo;\n const y = isArray(pointInfo.y) ? pointInfo.y : [y0, pointInfo.y];\n\n return y.map((yItem: number) => {\n return {\n x: x as number,\n y: yItem,\n };\n });\n },\n});\n\n// Area 几何标记默认的 shape:填充的区域图\nregisterShape('area', 'area', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getShapeAttrs(cfg, false, false, this);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n fill: color,\n fillOpacity: 1,\n },\n };\n },\n});\n\nexport default AreaShapeFactory;\n","import { FIELD_ORIGIN } from '../constant';\nimport { MappingDatum } from '../interface';\nimport Path, { PathCfg } from './path';\nimport './shape/area';\n\n/** Area 几何标记构造函数参数 */\nexport interface AreaCfg extends PathCfg {\n /**\n * 面积图是否从 0 基准线开始填充。\n * 1. 默认值为 `true`,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/ZQqwUCczalrKqGgagOVp.png)\n * 2. 当值为 `false` 时,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/yPswkaXvUpCYOdhocGwB.png)\n */\n startOnZero?: boolean;\n}\n\n/**\n * Area 几何标记类。\n * 常用于绘制面积图。\n */\nexport default class Area extends Path {\n public readonly type: string = 'area';\n public readonly shapeType: string = 'area';\n /** 生成图形关键点 */\n public readonly generatePoints: boolean = true;\n /**\n * 面积图是否从 0 基准线开始填充。\n * 1. 默认值为 `true`,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/ZQqwUCczalrKqGgagOVp.png)\n * 2. 当值为 `false` 时,表现如下:\n * ![image](https://gw.alipayobjects.com/zos/rmsportal/yPswkaXvUpCYOdhocGwB.png)\n */\n public readonly startOnZero: boolean = true;\n\n constructor(cfg: AreaCfg) {\n super(cfg);\n\n const { startOnZero = true, sortable = false, showSinglePoint = false } = cfg;\n this.startOnZero = startOnZero; // 默认为 true\n this.sortable = sortable; // 关闭默认的 X 轴数据排序\n this.showSinglePoint = showSinglePoint;\n }\n\n /**\n * 获取图形绘制的关键点以及数据\n * @param mappingData 映射后的数据\n */\n protected getPointsAndData(mappingData: MappingDatum[]) {\n const points = [];\n const data = [];\n\n for (let i = 0, len = mappingData.length; i < len; i++) {\n const obj = mappingData[i];\n points.push(obj.points);\n data.push(obj[FIELD_ORIGIN]);\n }\n\n return {\n points,\n data,\n };\n }\n\n /**\n * 获取 Y 轴上的最小值\n * @returns y 字段最小值\n */\n protected getYMinValue(): number {\n if (this.startOnZero) {\n return super.getYMinValue();\n }\n const yScale = this.getYScale();\n return yScale.min;\n }\n}\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getLinePath } from '../util/path';\nimport { splitPoints } from '../util/split-points';\n\nconst EdgeShapeFactory = registerShapeFactory('edge', {\n defaultShapeType: 'line',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n return splitPoints(pointInfo);\n },\n});\n\nregisterShape('edge', 'line', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const path = getLinePath(this.parsePoints(cfg.points), this.coordinate.isPolar);\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n\nexport default EdgeShapeFactory;\n","import Geometry from './base';\nimport './shape/edge';\n\n/**\n * Edge 几何标记,用于绘制关系图中的**边**图形,如:\n * 1. 流程图\n * 2. 树\n * 3. 弧长连接图\n * 4. 和弦图\n * 5. 桑基图\n */\nexport default class Edge extends Geometry {\n public readonly type: string = 'edge';\n public readonly shapeType: string = 'edge';\n protected generatePoints: boolean = true;\n}\n","import ColorUtil from '@antv/color-util';\nimport { get, isNumber } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { Color, IShape } from '../dependents';\nimport { Data, Datum, MappingDatum, ShapeInfo, AttributeOption, ColorAttrCallback } from '../interface';\nimport Geometry from './base';\n\n/**\n * 用于绘制热力图。\n */\nexport default class Heatmap extends Geometry {\n public readonly type: string = 'heatmap';\n\n private paletteCache: Record = {};\n private grayScaleBlurredCanvas: HTMLCanvasElement;\n private shadowCanvas: HTMLCanvasElement;\n private imageShape: IShape;\n\n protected updateElements(mappingDataArray: MappingDatum[][], isUpdate: boolean = false) {\n for (let i = 0; i < mappingDataArray.length; i++) {\n const mappingData = mappingDataArray[i];\n const range = this.prepareRange(mappingData);\n const radius = this.prepareSize();\n\n let blur = get(this.styleOption, ['cfg', 'shadowBlur']);\n if (!isNumber(blur)) {\n blur = radius / 2;\n }\n\n this.prepareGreyScaleBlurredCircle(radius, blur);\n this.drawWithRange(mappingData, range, radius, blur);\n }\n }\n\n /** 热力图暂时不支持 callback 回调(文档需要说明下) */\n public color(field: AttributeOption | string, cfg?: string | string[] | ColorAttrCallback): Geometry {\n this.createAttrOption('color', field, typeof cfg !== 'function' ? cfg : '');\n\n return this;\n }\n\n /**\n * clear\n */\n public clear() {\n super.clear();\n this.clearShadowCanvasCtx();\n this.paletteCache = {};\n }\n\n private prepareRange(data: MappingDatum[]) {\n const colorAttr = this.getAttribute('color');\n const colorField = colorAttr.getFields()[0];\n\n let min = Infinity;\n let max = -Infinity;\n data.forEach((row) => {\n const value = row[FIELD_ORIGIN][colorField];\n if (value > max) {\n max = value;\n }\n if (value < min) {\n min = value;\n }\n });\n\n if (min === max) {\n min = max - 1;\n }\n\n return [min, max];\n }\n\n private prepareSize() {\n let radius = this.getDefaultValue('size');\n if (!isNumber(radius)) {\n radius = this.getDefaultSize();\n }\n\n return radius;\n }\n\n private prepareGreyScaleBlurredCircle(radius: number, blur: number) {\n const grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas();\n const r2 = radius + blur;\n const ctx = grayScaleBlurredCanvas.getContext('2d');\n grayScaleBlurredCanvas.width = grayScaleBlurredCanvas.height = r2 * 2;\n ctx.clearRect(0, 0, grayScaleBlurredCanvas.width, grayScaleBlurredCanvas.height);\n ctx.shadowOffsetX = ctx.shadowOffsetY = r2 * 2;\n ctx.shadowBlur = blur;\n ctx.shadowColor = 'black';\n\n ctx.beginPath();\n ctx.arc(-r2, -r2, radius, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n }\n\n private drawWithRange(data: MappingDatum[], range: number[], radius: number, blur: number) {\n // canvas size\n const { start, end } = this.coordinate;\n const width = this.coordinate.getWidth();\n const height = this.coordinate.getHeight();\n\n // value, range, etc\n const colorAttr = this.getAttribute('color');\n const valueField = colorAttr.getFields()[0];\n\n // prepare shadow canvas context\n this.clearShadowCanvasCtx();\n const ctx = this.getShadowCanvasCtx();\n // filter data\n if (range) {\n data = data.filter((row) => {\n return row[FIELD_ORIGIN][valueField] <= range[1] && row[FIELD_ORIGIN][valueField] >= range[0];\n });\n }\n\n // step1. draw points with shadow\n const scale = this.scales[valueField];\n for (const obj of data) {\n const { x, y } = this.getDrawCfg(obj);\n const alpha = scale.scale(obj[FIELD_ORIGIN][valueField]);\n this.drawGrayScaleBlurredCircle((x as number) - start.x, (y as number) - end.y, radius + blur, alpha, ctx);\n }\n\n // step2. convert pixels\n const colored = ctx.getImageData(0, 0, width, height);\n this.clearShadowCanvasCtx();\n this.colorize(colored);\n ctx.putImageData(colored, 0, 0);\n const imageShape = this.getImageShape();\n imageShape.attr('x', start.x);\n imageShape.attr('y', end.y);\n imageShape.attr('width', width);\n imageShape.attr('height', height);\n imageShape.attr('img', ctx.canvas);\n imageShape.set('origin', this.getShapeInfo(data)); // 存储绘图信息数据\n }\n\n private getDefaultSize() {\n const position = this.getAttribute('position');\n const coordinate = this.coordinate;\n return Math.min(\n coordinate.getWidth() / (position.scales[0].ticks.length * 4),\n coordinate.getHeight() / (position.scales[1].ticks.length * 4)\n );\n }\n\n private clearShadowCanvasCtx() {\n const ctx = this.getShadowCanvasCtx();\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n }\n\n private getShadowCanvasCtx() {\n let canvas = this.shadowCanvas;\n if (!canvas) {\n canvas = document.createElement('canvas');\n this.shadowCanvas = canvas;\n }\n canvas.width = this.coordinate.getWidth();\n canvas.height = this.coordinate.getHeight();\n return canvas.getContext('2d');\n }\n\n private getGrayScaleBlurredCanvas() {\n if (!this.grayScaleBlurredCanvas) {\n this.grayScaleBlurredCanvas = document.createElement('canvas');\n }\n\n return this.grayScaleBlurredCanvas;\n }\n\n private drawGrayScaleBlurredCircle(x: number, y: number, r: number, alpha: number, ctx: CanvasRenderingContext2D) {\n const grayScaleBlurredCanvas = this.getGrayScaleBlurredCanvas();\n ctx.globalAlpha = alpha;\n ctx.drawImage(grayScaleBlurredCanvas, x - r, y - r);\n }\n\n private colorize(img: ImageData) {\n const colorAttr = this.getAttribute('color') as Color;\n const pixels = img.data;\n const paletteCache = this.paletteCache;\n for (let i = 3; i < pixels.length; i += 4) {\n const alpha = pixels[i]; // get gradient color from opacity value\n if (isNumber(alpha)) {\n const palette = paletteCache[alpha] ? paletteCache[alpha] : ColorUtil.rgb2arr(colorAttr.gradient(alpha / 256));\n pixels[i - 3] = palette[0];\n pixels[i - 2] = palette[1];\n pixels[i - 1] = palette[2];\n pixels[i] = alpha;\n }\n }\n }\n\n private getImageShape() {\n let imageShape = this.imageShape;\n if (imageShape) {\n return imageShape;\n }\n const container = this.container;\n imageShape = container.addShape({\n type: 'image',\n attrs: {},\n });\n this.imageShape = imageShape;\n return imageShape;\n }\n\n private getShapeInfo(mappingData: MappingDatum[]): ShapeInfo {\n const shapeCfg = this.getDrawCfg(mappingData[0]);\n\n const data = mappingData.map((obj: Datum) => {\n return obj[FIELD_ORIGIN];\n });\n\n return {\n ...shapeCfg,\n mappingData,\n data,\n };\n }\n}\n","import { Coordinate } from '@antv/coord';\nimport { isArray, isNil, get } from '@antv/util';\nimport { getAngle, getSectorPath } from '../../../util/graphics';\nimport { PathCommand } from '../../../dependents';\nimport { Point, ShapeInfo, ShapePoint } from '../../../interface';\n\n/**\n * @ignore\n * 根据数据点生成矩形的四个关键点\n * @param pointInfo 数据点信息\n * @param [isPyramid] 是否为尖底漏斗图\n * @returns rect points 返回矩形四个顶点信息\n */\nexport function getRectPoints(pointInfo: ShapePoint): Point[] {\n const { x, y, y0, size } = pointInfo;\n // 有 4 种情况,\n // 1. x, y 都不是数组\n // 2. y是数组,x不是\n // 3. x是数组,y不是\n // 4. x, y 都是数组\n let yMin;\n let yMax;\n if (isArray(y)) {\n [yMin, yMax] = y;\n } else {\n yMin = y0;\n yMax = y;\n }\n\n let xMin;\n let xMax;\n if (isArray(x)) {\n [xMin, xMax] = x;\n } else {\n xMin = x - size / 2;\n xMax = x + size / 2;\n }\n\n const points = [\n { x: xMin, y: yMin },\n { x: xMin, y: yMax },\n ];\n\n // 矩形的四个关键点,结构如下(左下角顺时针连接)\n // 1 ---- 2\n // | |\n // 0 ---- 3\n points.push({ x: xMax, y: yMax }, { x: xMax, y: yMin });\n\n return points;\n}\n\n/**\n * @ignore\n * 根据矩形关键点绘制 path\n * @param points 关键点数组\n * @param isClosed path 是否需要闭合\n * @returns 返回矩形的 path\n */\nexport function getRectPath(points: Point[], isClosed: boolean = true): PathCommand[] {\n const path = [];\n const firstPoint = points[0];\n path.push(['M', firstPoint.x, firstPoint.y]);\n for (let i = 1, len = points.length; i < len; i++) {\n path.push(['L', points[i].x, points[i].y]);\n }\n // 对于 shape=\"line\" path 不应该闭合,否则会造成 lineCap 绘图属性失效\n if (isClosed) {\n path.push(['L', firstPoint.x, firstPoint.y]); // 需要闭合\n path.push(['z']);\n }\n return path;\n}\n\n/**\n * 处理 rect path 的 radius\n * @returns 返回矩形 path 的四个角的 arc 半径\n */\nexport function parseRadius(radius: number | number[], minLength: number): number[] {\n let r1 = 0;\n let r2 = 0;\n let r3 = 0;\n let r4 = 0;\n if (isArray(radius)) {\n if (radius.length === 1) {\n r1 = r2 = r3 = r4 = radius[0];\n } else if (radius.length === 2) {\n r1 = r3 = radius[0];\n r2 = r4 = radius[1];\n } else if (radius.length === 3) {\n r1 = radius[0];\n r2 = r4 = radius[1];\n r3 = radius[2];\n } else {\n r1 = radius[0];\n r2 = radius[1];\n r3 = radius[2];\n r4 = radius[3];\n }\n } else {\n r1 = r2 = r3 = r4 = radius;\n }\n\n // 处理 边界值\n if (r1 + r2 > minLength) {\n r1 = r1 ? minLength / (1 + r2 / r1) : 0;\n r2 = minLength - r1;\n }\n\n if (r3 + r4 > minLength) {\n r3 = r3 ? minLength / (1 + r4 / r3) : 0;\n r4 = minLength - r3;\n }\n\n return [r1 || 0, r2 || 0, r3 || 0, r4 || 0];\n}\n\n/**\n * 获取 interval 矩形背景的 path\n * @param cfg 关键点的信息\n * @param points 已转化为画布坐标的 4 个关键点\n * @param coordinate 坐标系\n * @returns 返回矩形背景的 path\n */\nexport function getBackgroundRectPath(cfg: ShapeInfo, points: Point[], coordinate: Coordinate): PathCommand[] {\n let path = [];\n if (coordinate.isRect) {\n const p0 = coordinate.isTransposed\n ? { x: coordinate.start.x, y: points[0].y }\n : { x: points[0].x, y: coordinate.start.y };\n const p1 = coordinate.isTransposed\n ? { x: coordinate.end.x, y: points[2].y }\n : { x: points[3].x, y: coordinate.end.y };\n\n // corner radius of background shape works only in 笛卡尔坐标系\n const radius = get(cfg, ['background', 'style', 'radius']);\n if (radius) {\n const width = coordinate.isTransposed ? Math.abs(points[0].y - points[2].y) : points[2].x - points[1].x;\n const height = coordinate.isTransposed ? coordinate.getWidth() : coordinate.getHeight();\n const [r1, r2, r3, r4] = parseRadius(radius, Math.min(width, height));\n\n // 同时存在 坐标系是否发生转置 和 y 镜像的时候\n const isReflectYTransposed = (coordinate.isTransposed && coordinate.isReflect('y'));\n const bump = isReflectYTransposed ? 0 : 1;\n const opposite = (r: number) => isReflectYTransposed ? -r : r;\n\n path.push(['M', p0.x, p1.y + opposite(r1)]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, bump, p0.x + r1, p1.y]);\n path.push(['L', p1.x - r2, p1.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, bump, p1.x, p1.y + opposite(r2)]);\n path.push(['L', p1.x, p0.y - opposite(r3)]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, bump, p1.x - r3, p0.y]);\n path.push(['L', p0.x + r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, bump, p0.x, p0.y - opposite(r4)]);\n } else {\n path.push(['M', p0.x, p0.y]);\n path.push(['L', p1.x, p0.y]);\n path.push(['L', p1.x, p1.y]);\n path.push(['L', p0.x, p1.y]);\n path.push(['L', p0.x, p0.y]);\n }\n\n path.push(['z']);\n }\n\n if (coordinate.isPolar) {\n const center = coordinate.getCenter();\n const { startAngle, endAngle } = getAngle(cfg, coordinate);\n if (coordinate.type !== 'theta' && !coordinate.isTransposed) {\n // 获取扇形 path\n path = getSectorPath(center.x, center.y, coordinate.getRadius(), startAngle, endAngle);\n } else {\n const pow = (v) => Math.pow(v, 2);\n const r1 = Math.sqrt(pow(center.x - points[0].x) + pow(center.y - points[0].y));\n const r2 = Math.sqrt(pow(center.x - points[2].x) + pow(center.y - points[2].y));\n // 获取扇形 path(其实是一个圆环,从 coordinate 的起始角度到结束角度)\n path = getSectorPath(center.x, center.y, r1, coordinate.startAngle, coordinate.endAngle, r2);\n }\n }\n return path;\n}\n\n/**\n * @ignore\n * 根据矩形关键点绘制 path\n * @param points 关键点数组\n * @param lineCap 'round'圆角样式\n * @param coor 坐标\n * @returns 返回矩形的 path\n */\nexport function getIntervalRectPath(points: Point[], lineCap: CanvasLineCap, coor: Coordinate): PathCommand[] {\n const width = coor.getWidth();\n const height = coor.getHeight();\n const isRect = coor.type === 'rect';\n let path = [];\n const r = (points[2].x - points[1].x) / 2;\n const ry = coor.isTransposed ? (r * height) / width : (r * width) / height;\n if (lineCap === 'round') {\n if (isRect) {\n path.push(['M', points[0].x, points[0].y + ry]);\n path.push(['L', points[1].x, points[1].y - ry]);\n path.push(['A', r, r, 0, 0, 1, points[2].x, points[2].y - ry]);\n path.push(['L', points[3].x, points[3].y + ry]);\n path.push(['A', r, r, 0, 0, 1, points[0].x, points[0].y + ry]);\n } else {\n path.push(['M', points[0].x, points[0].y]);\n path.push(['L', points[1].x, points[1].y]);\n path.push(['A', r, r, 0, 0, 1, points[2].x, points[2].y]);\n path.push(['L', points[3].x, points[3].y]);\n path.push(['A', r, r, 0, 0, 1, points[0].x, points[0].y]);\n }\n path.push(['z']);\n } else {\n path = getRectPath(points);\n }\n return path;\n}\n\n/**\n * @ignore\n * 根据 funnel 关键点绘制漏斗图的 path\n * @param points 图形关键点信息\n * @param nextPoints 下一个数据的图形关键点信息\n * @param isPyramid 是否为尖底漏斗图\n * @returns 返回漏斗图的图形 path\n */\nexport function getFunnelPath(points: Point[], nextPoints: Point[], isPyramid: boolean) {\n const path = [];\n if (!isNil(nextPoints)) {\n path.push(\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['L', nextPoints[1].x, nextPoints[1].y],\n ['L', nextPoints[0].x, nextPoints[0].y],\n ['Z']\n );\n } else if (isPyramid) {\n // 金字塔最底部\n path.push(\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['L', (points[2].x + points[3].x) / 2, (points[2].y + points[3].y) / 2],\n ['Z']\n );\n } else {\n // 漏斗图最底部\n path.push(\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['L', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['Z']\n );\n }\n\n return path;\n}\n\n/**\n * 交换两个对象\n */\nfunction swap(p0: T, p1: T) {\n return [p1, p0];\n}\n\n/**\n * 获取 倒角 矩形\n * - 目前只适用于笛卡尔坐标系下\n */\nexport function getRectWithCornerRadius(points: Point[], coordinate: Coordinate, radius?: number | number[]) {\n // 获取 四个关键点\n let [p0, p1, p2, p3] = [...points];\n let [r1, r2, r3, r4] = typeof radius === 'number' ? Array(4).fill(radius) : radius;\n\n if (coordinate.isTransposed) {\n [p1, p3] = swap(p1, p3);\n }\n\n /**\n * 存在镜像\n */\n if (coordinate.isReflect('y')) {\n [p0, p1] = swap(p0, p1);\n [p2, p3] = swap(p2, p3);\n }\n if (coordinate.isReflect('x')) {\n [p0, p3] = swap(p0, p3);\n [p1, p2] = swap(p1, p2);\n }\n\n const path = [];\n\n\n /**\n * p1 → p2\n * ↑ ↓\n * p0 ← p3\n *\n * 负数的情况,关键点会变成下面的形式\n *\n * p0 ← p3 p2 ← p1\n * ↓ ↑ ↓ ↑\n * p1 → p2 --> (转置下) p3 → p0\n */\n const abs = v => Math.abs(v);\n [r1, r2, r3, r4] = parseRadius([r1, r2, r3, r4], Math.min(abs(p3.x - p0.x), abs(p1.y - p0.y))).map(d => abs(d));\n\n if (coordinate.isTransposed) {\n [r1, r2, r3, r4] = [r4, r1, r2, r3]\n }\n\n if (p0.y < p1.y /** 负数情况 */) {\n path.push(['M', p3.x, p3.y + r3]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, 0, p3.x - r3, p3.y]);\n path.push(['L', p0.x + r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, 0, p0.x, p0.y + r4]);\n path.push(['L', p1.x, p1.y - r1]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, 0/** 逆时针 */, p1.x + r1, p1.y]);\n path.push(['L', p2.x - r2, p2.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, 0, p2.x, p2.y - r2]);\n path.push(['L', p3.x, p3.y + r3]);\n path.push(['z']);\n } else if (p3.x < p0.x) {\n path.push(['M', p2.x + r2, p2.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, 0, p2.x, p2.y + r2]);\n path.push(['L', p3.x, p3.y - r3]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, 0, p3.x + r3, p3.y]);\n path.push(['L', p0.x - r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, 0, p0.x, p0.y - r4]);\n path.push(['L', p1.x, p1.y + r1]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, 0, p1.x - r1, p1.y]);\n path.push(['L', p2.x + r2, p2.y]);\n path.push(['z']);\n } else {\n path.push(['M', p1.x, p1.y + r1]);\n r1 !== 0 && path.push(['A', r1, r1, 0, 0, 1, p1.x + r1, p1.y]);\n path.push(['L', p2.x - r2, p2.y]);\n r2 !== 0 && path.push(['A', r2, r2, 0, 0, 1, p2.x, p2.y + r2]);\n path.push(['L', p3.x, p3.y - r3]);\n r3 !== 0 && path.push(['A', r3, r3, 0, 0, 1, p3.x - r3, p3.y]);\n path.push(['L', p0.x + r4, p0.y]);\n r4 !== 0 && path.push(['A', r4, r4, 0, 0, 1, p0.x, p0.y - r4]);\n path.push(['L', p1.x, p1.y + r1]);\n path.push(['z']);\n }\n\n return path;\n}\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { BACKGROUND_SHAPE } from '../constant';\nimport { getBackgroundRectStyle, getStyle } from '../util/get-style';\nimport { getBackgroundRectPath, getIntervalRectPath, getRectPoints, getRectWithCornerRadius } from './util';\n\n/** Interval 的 shape 工厂 */\nconst IntervalShapeFactory = registerShapeFactory('interval', {\n defaultShapeType: 'rect',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n return getRectPoints(pointInfo);\n },\n});\n\n/** Inerval 默认 shape,填充的矩形 */\nregisterShape('interval', 'rect', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, false, true);\n let group = container;\n\n const backgroundCfg = cfg?.background;\n if (backgroundCfg) {\n group = container.addGroup({\n name: 'interval-group',\n });\n const backgroundStyle = getBackgroundRectStyle(cfg);\n const backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points) as Point[], this.coordinate);\n group.addShape('path', {\n attrs: {\n ...backgroundStyle,\n path: backgroundPath,\n },\n capture: false,\n zIndex: -1,\n name: BACKGROUND_SHAPE,\n });\n }\n\n let path;\n if (style.radius && this.coordinate.isRect) {\n path = getRectWithCornerRadius(this.parsePoints(cfg.points), this.coordinate, style.radius);\n } else {\n path = this.parsePath(getIntervalRectPath(cfg.points as Point[], style.lineCap, this.coordinate));\n }\n\n const shape = group.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return backgroundCfg ? group : shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color, isInPolar } = markerCfg;\n if (isInPolar) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: color,\n },\n };\n }\n\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n\nexport default IntervalShapeFactory;\n","import { flatten, isString, valuesOfKey, isNil } from '@antv/util';\nimport { getXDimensionLength } from '../../util/coordinate';\n\n// 已经排序后的数据查找距离最小的\nfunction findMinDistance(arr, scale) {\n const count = arr.length;\n let sourceArr = arr;\n if (isString(sourceArr[0])) {\n // 日期类型的 values 经常上文本类型,所以需要转换一下\n sourceArr = arr.map((v: string) => {\n return scale.translate(v);\n });\n }\n let distance = sourceArr[1] - sourceArr[0];\n for (let i = 2; i < count; i++) {\n const tmp = sourceArr[i] - sourceArr[i - 1];\n if (distance > tmp) {\n distance = tmp;\n }\n }\n return distance;\n}\n\nfunction getDodgeCount(dataArray, dodgeBy) {\n if (dodgeBy) {\n const mergeData = flatten(dataArray);\n const values = valuesOfKey(mergeData, dodgeBy);\n return values.length;\n }\n\n return dataArray.length;\n}\n\n/** @ignore */\nexport function getDefaultSize(geometry): number {\n const theme = geometry.theme;\n const coordinate = geometry.coordinate;\n const xScale = geometry.getXScale();\n const xValues = xScale.values;\n const dataArray = geometry.beforeMappingData;\n let count: number = xValues.length;\n const xDimensionLength = getXDimensionLength(geometry.coordinate);\n // 获取柱宽相关配置项\n const { intervalPadding, dodgePadding } = geometry;\n // 兼容theme配置\n const maxColumnWidth = geometry.maxColumnWidth || theme.maxColumnWidth;\n const minColumnWidth = geometry.minColumnWidth || theme.minColumnWidth;\n const columnWidthRatio = geometry.columnWidthRatio || theme.columnWidthRatio;\n const multiplePieWidthRatio = geometry.multiplePieWidthRatio || theme.multiplePieWidthRatio;\n const roseWidthRatio = geometry.roseWidthRatio || theme.roseWidthRatio;\n\n // 线性情况下count值\n if (xScale.isLinear && xValues.length > 1) {\n // Linear 类型用户有可能设置了 min, max 范围所以需要根据数据最小区间计算 count\n xValues.sort();\n const interval = findMinDistance(xValues, xScale);\n count = (xScale.max - xScale.min) / interval;\n if (xValues.length > count) {\n count = xValues.length;\n }\n }\n\n const range = xScale.range;\n let normalizedSize = 1 / count;\n let wr = 1;\n if (coordinate.isPolar) {\n // 极坐标场景\n if (coordinate.isTransposed && count > 1) {\n // 极坐标下多层环图\n wr = multiplePieWidthRatio;\n } else {\n wr = roseWidthRatio;\n }\n } else {\n // 非极坐标场景\n if (xScale.isLinear) {\n normalizedSize *= range[1] - range[0];\n }\n wr = columnWidthRatio;\n }\n\n // 基础柱状图\n if (!isNil(intervalPadding) && intervalPadding >= 0) {\n // 配置组间距情况\n const normalizedIntervalPadding = intervalPadding / xDimensionLength;\n normalizedSize = (1 - (count - 1) * normalizedIntervalPadding) / count;\n } else {\n // 默认情况\n normalizedSize *= wr;\n }\n // 分组柱状图\n if (geometry.getAdjust('dodge')) {\n const dodgeAdjust = geometry.getAdjust('dodge');\n const dodgeBy = dodgeAdjust.dodgeBy;\n const dodgeCount = getDodgeCount(dataArray, dodgeBy);\n if (!isNil(dodgePadding) && dodgePadding >= 0) {\n // 仅配置组内间距情况\n const normalizedDodgePadding = dodgePadding / xDimensionLength;\n normalizedSize = (normalizedSize - normalizedDodgePadding * (dodgeCount - 1)) / dodgeCount;\n } else if (!isNil(intervalPadding) && intervalPadding >= 0) {\n // 设置组间距但未设置组内间距情况,避免组间距过小导致图形重叠,需乘以wr\n normalizedSize *= wr;\n normalizedSize = normalizedSize / dodgeCount;\n } else {\n // 组间距和组内间距均未配置\n normalizedSize = normalizedSize / dodgeCount;\n }\n normalizedSize = normalizedSize >= 0 ? normalizedSize : 0;\n }\n\n // 最大和最小限制\n if (!isNil(maxColumnWidth) && maxColumnWidth >= 0) {\n const normalizedMaxColumnWidth = maxColumnWidth / xDimensionLength;\n if (normalizedSize > normalizedMaxColumnWidth) {\n normalizedSize = normalizedMaxColumnWidth;\n }\n }\n\n // \bminColumnWidth可能设置为0\n if (!isNil(minColumnWidth) && minColumnWidth >= 0) {\n const normalizedMinColumnWidth = minColumnWidth / xDimensionLength;\n if (normalizedSize < normalizedMinColumnWidth) {\n normalizedSize = normalizedMinColumnWidth;\n }\n }\n\n return normalizedSize;\n}\n","import { get } from '@antv/util';\nimport { Datum, MappingDatum, ShapeInfo, LooseObject } from '../interface';\nimport { ShapeAttrs } from '../dependents';\nimport { getXDimensionLength } from '../util/coordinate';\nimport Geometry, { GeometryCfg } from './base';\n/** 引入对应的 ShapeFactory */\nimport './shape/interval';\nimport { getDefaultSize } from './util/shape-size';\nimport { getMaxScale } from '../util/scale';\n\n/** Path 构造函数参数类型 */\nexport interface IntervalCfg extends GeometryCfg {\n /** shape 背景,只对 Interval Geometry 生效,目前只对 interval-rect shape 生效。 */\n background?: { style?: ShapeAttrs };\n}\n\n/**\n * Interval 几何标记。\n * 用于绘制柱状图、饼图、条形图、玫瑰图等。\n */\nexport default class Interval extends Geometry {\n public readonly type: string = 'interval';\n public readonly shapeType: string = 'interval';\n /** shape 背景。目前只对 interval-rect shape 生效。 */\n protected background?: { style?: ShapeAttrs };\n protected generatePoints: boolean = true;\n\n constructor(cfg: IntervalCfg) {\n super(cfg);\n\n const { background } = cfg;\n this.background = background;\n }\n\n /**\n * 获取每条数据的 Shape 绘制信息\n * @param obj 经过分组 -> 数字化 -> adjust 调整后的数据记录\n * @returns\n */\n protected createShapePointsCfg(obj: Datum) {\n const cfg = super.createShapePointsCfg(obj);\n\n // 计算每个 shape 的 size\n let size;\n const sizeAttr = this.getAttribute('size');\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, obj)[0];\n // 归一化\n const coordinate = this.coordinate;\n const coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n size = this.defaultSize;\n }\n cfg.size = size;\n\n return cfg;\n }\n\n /**\n * 调整 y 轴的 scale 范围。\n * 对于 Y 轴为数值轴柱状图,默认从 0 开始 生长。\n */\n protected adjustScale() {\n super.adjustScale();\n const yScale = this.getYScale();\n // 特殊逻辑:饼图需要填充满整个空间\n if (this.coordinate.type === 'theta') {\n yScale.change({\n nice: false,\n min: 0,\n // 发生过 stack 调整,yScale 的 max 被调整过,this.updateStackRange()\n max: getMaxScale(yScale),\n });\n } else {\n // 柱状图数值轴默认从 0 开始\n const scaleDefs = this.scaleDefs;\n const { field, min, max, type } = yScale;\n if (type !== 'time') {\n // time 类型不做调整\n // 柱状图的 Y 轴要从 0 开始生长,但是如果用户设置了则以用户的为准\n if (min > 0 && !get(scaleDefs, [field, 'min'])) {\n yScale.change({\n min: 0,\n });\n }\n // 柱当柱状图全为负值时也需要从 0 开始生长,但是如果用户设置了则以用户的为准\n if (max <= 0 && !get(scaleDefs, [field, 'max'])) {\n yScale.change({\n max: 0,\n });\n }\n }\n }\n }\n\n /**\n * @override\n */\n protected getDrawCfg(mappingData: MappingDatum): ShapeInfo {\n const shapeCfg = super.getDrawCfg(mappingData);\n shapeCfg.background = this.background;\n\n return shapeCfg;\n }\n}\n","import Path, { PathCfg } from './path';\n/** 引入 Path 对应的 ShapeFactory */\nimport './shape/line';\n\n/**\n * Line 几何标记。\n * 常用于折线图的绘制。\n */\nexport default class Line extends Path {\n public type: string = 'line';\n\n constructor(cfg: PathCfg) {\n super(cfg);\n\n const { sortable = false } = cfg; // 关闭默认的 X 轴数据排序\n this.sortable = sortable;\n }\n}\n","import { IGroup, IShape } from '../../../dependents';\nimport { ShapeInfo } from '../../../interface';\nimport { MarkerSymbols } from '../../../util/marker';\nimport { getStyle } from '../util/get-style';\n\nexport const SHAPES = ['circle', 'square', 'bowtie', 'diamond', 'hexagon', 'triangle', 'triangle-down'];\nexport const HOLLOW_SHAPES = ['cross', 'tick', 'plus', 'hyphen', 'line'];\n\n/**\n * @ignore\n * Draws points\n * @param shape\n * @param cfg\n * @param container\n * @param shapeName\n * @param isStroke\n * @returns points\n */\nexport function drawPoints(\n shape,\n cfg: ShapeInfo,\n container: IGroup,\n shapeName: string,\n isStroke: boolean\n): IShape | IGroup {\n const style = getStyle(cfg, isStroke, !isStroke, 'r');\n const points = shape.parsePoints(cfg.points);\n let pointPosition = points[0];\n if (cfg.isStack) {\n pointPosition = points[1];\n } else if (points.length > 1) {\n const group = container.addGroup();\n for (const point of points) {\n group.addShape({\n type: 'marker',\n attrs: {\n ...style,\n symbol: MarkerSymbols[shapeName] || shapeName,\n ...point,\n },\n });\n }\n return group;\n }\n\n return container.addShape({\n type: 'marker',\n attrs: {\n ...style,\n symbol: MarkerSymbols[shapeName] || shapeName,\n ...pointPosition,\n },\n });\n}\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { splitPoints } from '../util/split-points';\nimport { drawPoints, SHAPES } from './util';\n\nconst PointShapeFactory = registerShapeFactory('point', {\n defaultShapeType: 'hollow-circle',\n getDefaultPoints(pointInfo: ShapePoint): Point[] {\n return splitPoints(pointInfo);\n },\n});\n\neach(SHAPES, (shapeName: string) => {\n // 添加该 shape 对应的 hollow-shape\n registerShape('point', `hollow-${shapeName}`, {\n draw(cfg: ShapeInfo, container: IGroup) {\n return drawPoints(this, cfg, container, shapeName, true);\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: MarkerSymbols[shapeName] || shapeName,\n style: {\n r: 4.5,\n stroke: color,\n fill: null,\n },\n };\n },\n });\n});\n\nexport default PointShapeFactory;\n","import { MappingDatum, ShapeInfo } from '../interface';\nimport Geometry from './base';\n/** 引入 Point 对应的 ShapeFactory */\nimport './shape/point';\n\n/**\n * Point 几何标记。\n * 常用于绘制点图。\n */\nexport default class Point extends Geometry {\n public readonly type: string = 'point';\n public readonly shapeType: string = 'point';\n protected generatePoints: boolean = true;\n\n /**\n * 获取一个点的绘制信息。\n * @param mappingDatum\n * @returns draw cfg\n */\n protected getDrawCfg(mappingDatum: MappingDatum): ShapeInfo {\n const shapeCfg = super.getDrawCfg(mappingDatum);\n\n return {\n ...shapeCfg,\n isStack: !!this.getAdjust('stack'), // 层叠点图\n };\n }\n}\n","import { each, isEmpty, isEqual, last } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getPath(points: any[]) {\n let flag: any = points[0];\n let i = 1;\n\n const path = [['M', flag.x, flag.y]];\n\n while (i < points.length) {\n const c: any = points[i];\n if (c.x !== points[i - 1].x || c.y !== points[i - 1].y) {\n path.push(['L', c.x, c.y]);\n if (c.x === flag.x && c.y === flag.y && i < points.length - 1) {\n flag = points[i + 1];\n path.push(['Z']);\n path.push(['M', flag.x, flag.y]);\n i++;\n }\n }\n i++;\n }\n\n if (!isEqual(last(path), flag)) {\n path.push(['L', flag.x, flag.y]);\n }\n\n path.push(['Z']);\n\n return path;\n}\n\nconst PolygonShapeFactory = registerShapeFactory('polygon', {\n defaultShapeType: 'polygon',\n getDefaultPoints(pointInfo: ShapePoint) {\n const points = [];\n each(pointInfo.x as number[], (subX, index) => {\n const subY = pointInfo.y[index];\n points.push({\n x: subX,\n y: subY,\n });\n });\n return points;\n },\n});\n\nregisterShape('polygon', 'polygon', {\n draw(cfg: ShapeInfo, container: IGroup) {\n if (!isEmpty(cfg.points)) {\n const shapeAttrs = getStyle(cfg, true, true);\n const path = this.parsePath(getPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...shapeAttrs,\n path,\n },\n name: 'polygon',\n });\n }\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n\nexport default PolygonShapeFactory;\n","import { isArray } from '@antv/util';\nimport { Datum } from '../interface';\nimport Geometry from './base';\n/** 引入 Path 对应的 ShapeFactory */\nimport './shape/polygon';\n\n/**\n * Polygon 几何标记。\n * 常用于绘制色块图、日历图等。\n */\nexport default class Polygon extends Geometry {\n public readonly type: string = 'polygon';\n public readonly shapeType: string = 'polygon';\n protected generatePoints: boolean = true;\n\n /**\n * 获取 Shape 的关键点数据。\n * @param obj\n * @returns\n */\n protected createShapePointsCfg(obj: Datum) {\n const cfg: any = super.createShapePointsCfg(obj);\n let x = cfg.x;\n let y = cfg.y;\n let temp;\n // x y 都是数组时,不做处理\n if (!(isArray(x) && isArray(y))) {\n const xScale = this.getXScale();\n const yScale = this.getYScale();\n const xCount = xScale.values.length;\n const yCount = yScale.values.length;\n const xOffset = (0.5 * 1) / xCount;\n const yOffset = (0.5 * 1) / yCount;\n\n if (xScale.isCategory && yScale.isCategory) {\n // 如果x,y都是分类\n x = [x - xOffset, x - xOffset, x + xOffset, x + xOffset];\n y = [y - yOffset, y + yOffset, y + yOffset, y - yOffset];\n } else if (isArray(x)) {\n // x 是数组\n temp = x;\n x = [temp[0], temp[0], temp[1], temp[1]];\n y = [y - yOffset / 2, y + yOffset / 2, y + yOffset / 2, y - yOffset / 2];\n } else if (isArray(y)) {\n // y 是数组\n temp = y;\n y = [temp[0], temp[1], temp[1], temp[0]];\n x = [x - xOffset / 2, x - xOffset / 2, x + xOffset / 2, x + xOffset / 2];\n }\n cfg.x = x;\n cfg.y = y;\n }\n return cfg;\n }\n}\n","import { LooseObject } from '../interface';\nimport { getXDimensionLength } from '../util/coordinate';\nimport Geometry from './base';\n/** 引入对应的 ShapeFactory */\nimport './shape/schema';\nimport { getDefaultSize } from './util/shape-size';\n\n/**\n * Schema 几何标记,用于一些自定义图形的绘制,比如箱型图、股票图等。\n */\nexport default class Schema extends Geometry {\n public readonly type: string = 'schema';\n public readonly shapeType: string = 'schema';\n protected generatePoints: boolean = true;\n\n /**\n * 获取 Shape 的关键点数据。\n * @param record\n * @returns\n */\n protected createShapePointsCfg(record: LooseObject) {\n const cfg = super.createShapePointsCfg(record);\n\n // 计算每个 shape 的 size\n let size;\n const sizeAttr = this.getAttribute('size');\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, record)[0];\n // 归一化\n const coordinate = this.coordinate;\n const coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n size = this.defaultSize;\n }\n cfg.size = size;\n\n return cfg;\n }\n}\n","import { registerShapeFactory } from '../base';\n\nconst SchemaShapeFactory = registerShapeFactory('schema', {\n defaultShapeType: '', // 'schema' is for some custom shapes, so will not specify defaultShapeType\n});\n\nexport default SchemaShapeFactory;\n","import { each, max, map, isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg, ViolinShapePoint } from '../../../interface';\nimport { registerShape, registerShapeFactory } from '../base';\nimport { getViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\nfunction normalizeSize(arr: number[]) {\n if (!isArray(arr)) {\n return [];\n }\n const maxValue = max(arr);\n return map(arr, (num) => num / maxValue);\n}\n\nconst ViolinShapeFactory = registerShapeFactory('violin', {\n defaultShapeType: 'violin',\n getDefaultPoints(pointInfo: ViolinShapePoint) {\n const radius = pointInfo.size / 2;\n const points = [];\n const sizeArr = normalizeSize(pointInfo._size);\n\n each(pointInfo.y as number[], (y, index) => {\n const offset = sizeArr[index] * radius;\n const isMin = index === 0;\n const isMax = index === (pointInfo.y as number[]).length - 1;\n points.push({\n isMin,\n isMax,\n x: (pointInfo.x as number) - offset,\n y,\n });\n points.unshift({\n isMin,\n isMax,\n x: (pointInfo.x as number) + offset,\n y,\n });\n });\n return points;\n },\n});\n\nregisterShape('violin', 'violin', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const shapeAttrs = getStyle(cfg, true, true);\n const path = this.parsePath(getViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...shapeAttrs,\n path,\n },\n name: 'violin',\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n\nexport default ViolinShapeFactory;\n","import { get } from '@antv/util';\nimport { FIELD_ORIGIN } from '../constant';\nimport { Datum, ViolinShapePoint } from '../interface';\nimport { getXDimensionLength } from '../util/coordinate';\nimport { getDefaultSize } from './util/shape-size';\nimport Geometry from './base';\n/** 引入 Path 对应的 ShapeFactory */\nimport './shape/violin';\n\n/**\n * Violin 几何标记。\n * 用于绘制小提琴图。\n */\nexport default class Violin extends Geometry {\n public readonly type: string = 'violin';\n public readonly shapeType: string = 'violin';\n protected generatePoints: boolean = true;\n /** size 私有映射字段 */\n private _sizeField: string;\n\n /**\n * 获取 Shape 的关键点数据。\n * @param record\n * @returns\n */\n protected createShapePointsCfg(record: Datum) {\n const cfg = super.createShapePointsCfg(record);\n\n // 计算每个 shape 的 size\n let size;\n const sizeAttr = this.getAttribute('size');\n if (sizeAttr) {\n size = this.getAttributeValues(sizeAttr, record)[0];\n // 归一化\n const coordinate = this.coordinate;\n const coordinateWidth = getXDimensionLength(coordinate);\n size = size / coordinateWidth;\n } else {\n if (!this.defaultSize) {\n this.defaultSize = getDefaultSize(this);\n }\n size = this.defaultSize;\n }\n cfg.size = size;\n cfg._size = get(record[FIELD_ORIGIN], [this._sizeField]);\n return cfg;\n }\n\n /**\n * @override\n */\n protected initAttributes() {\n const { attributeOption } = this;\n const sizeField = attributeOption.size\n ? attributeOption.size.fields[0]\n : this._sizeField\n ? this._sizeField\n : 'size';\n this._sizeField = sizeField;\n // fixme 干啥要删掉\n delete attributeOption.size;\n super.initAttributes();\n }\n}\n","import { each } from '@antv/util';\nimport { Point } from '../../../interface';\n\n/**\n * @ignore\n * Gets cpath\n * @param from\n * @param to\n * @returns\n */\nexport function getCPath(from: Point, to: Point) {\n return ['C', (from.x * 1) / 2 + (to.x * 1) / 2, from.y, (from.x * 1) / 2 + (to.x * 1) / 2, to.y, to.x, to.y];\n}\n\n/**\n * @ignore\n * Gets qpath\n * @param to\n * @param center\n * @returns\n */\nexport function getQPath(to: Point, center: Point) {\n const points = [];\n points.push({\n x: center.x,\n y: center.y,\n });\n points.push(to);\n\n const sub = ['Q'];\n each(points, (point) => {\n sub.push(point.x, point.y);\n });\n\n return sub;\n}\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\nimport { registerShape } from '../base';\nimport { getShapeAttrs } from './util';\n\n/**\n * 描边但不填充的区域图\n */\nregisterShape('area', 'line', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getShapeAttrs(cfg, true, false, this);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n stroke: color,\n fill: null,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getConstraint, getShapeAttrs } from './util';\n\n/**\n * 填充的平滑曲面图\n */\nregisterShape('area', 'smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const coordinate = this.coordinate;\n const attrs = getShapeAttrs(cfg, false, true, this, getConstraint(coordinate));\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n fill: color,\n fillOpacity: 1,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getConstraint, getShapeAttrs } from './util';\n\n/** 描边的平滑曲面图 */\nregisterShape('area', 'smooth-line', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const coordinate = this.coordinate;\n const attrs = getShapeAttrs(cfg, true, true, this, getConstraint(coordinate));\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'area',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number = 5.5) => {\n return [['M', x - r, y - 4], ['L', x + r, y - 4], ['L', x + r, y + 4], ['L', x - r, y + 4], ['Z']];\n },\n style: {\n r: 5,\n stroke: color,\n fill: null,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { getArcPath } from '../../../util/graphics';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getCPath, getQPath } from './util';\n\nfunction getArcShapePath(from: Point, to: Point, center: Point) {\n const sub = getQPath(to, center);\n const path = [['M', from.x, from.y]];\n path.push(sub);\n return path;\n}\n\nfunction getArcShapeWeightPath(points: Point[], center: Point) {\n const arc1 = getQPath(points[1], center);\n const arc2 = getQPath(points[3], center);\n const path = [['M', points[0].x, points[0].y]];\n path.push(arc2);\n path.push(['L', points[3].x, points[3].y]);\n path.push(['L', points[2].x, points[2].y]);\n path.push(arc1);\n path.push(['L', points[1].x, points[1].y]);\n path.push(['L', points[0].x, points[0].y]);\n path.push(['Z']);\n return path;\n}\n\n// 弧线包括笛卡尔坐标系下的半圆弧线、极坐标系下以圆心为控制点的二阶曲线、笛卡尔坐标系下带权重的三阶曲线、极坐标系下带权重的以圆心为控制点的二阶曲线\nregisterShape('edge', 'arc', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n\n let points = cfg.points as Point[];\n const type = points.length > 2 ? 'weight' : 'normal';\n let path;\n if (cfg.isInCircle) {\n const center = { x: 0, y: 1 };\n if (type === 'normal') {\n path = getArcShapePath(points[0], points[1], center);\n } else {\n style.fill = style.stroke;\n path = getArcShapeWeightPath(points, center);\n }\n path = this.parsePath(path);\n\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n } else {\n if (type === 'normal') {\n points = this.parsePoints(points);\n path = getArcPath(\n (points[1].x + points[0].x) / 2,\n points[0].y,\n Math.abs(points[1].x - points[0].x) / 2,\n Math.PI,\n Math.PI * 2\n );\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n } else {\n const c1 = getCPath(points[1], points[3]);\n const c2 = getCPath(points[2], points[0]);\n\n path = [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n c1,\n ['L', points[3].x, points[3].y],\n ['L', points[2].x, points[2].y],\n c2,\n ['Z'],\n ];\n path = this.parsePath(path);\n style.fill = style.stroke;\n\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n }\n }\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getCPath } from './util';\n\nfunction getSmoothPath(from: Point, to: Point) {\n const sub = getCPath(from, to);\n const path = [['M', from.x, from.y]];\n\n path.push(sub);\n return path;\n}\n\nregisterShape('edge', 'smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const points = cfg.points;\n const path = this.parsePath(getSmoothPath(points[0] as Point, points[1] as Point));\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nconst CORNER_PERCENT = 1 / 3;\n\nfunction getVHVPath(from: Point, to: Point) {\n const points = [];\n points.push({\n x: from.x,\n y: from.y * (1 - CORNER_PERCENT) + to.y * CORNER_PERCENT,\n });\n points.push({\n x: to.x,\n y: from.y * (1 - CORNER_PERCENT) + to.y * CORNER_PERCENT,\n });\n points.push(to);\n\n const path = [['M', from.x, from.y]];\n each(points, (point) => {\n path.push(['L', point.x, point.y]);\n });\n\n return path;\n}\n\nregisterShape('edge', 'vhv', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const points = cfg.points;\n const path = this.parsePath(getVHVPath(points[0] as Point, points[1] as Point));\n return container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: markerCfg.color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getFunnelPath, getRectPoints } from './util';\n\n/** 漏斗图 */\nregisterShape('interval', 'funnel', {\n getPoints(shapePoint: ShapePoint) {\n shapePoint.size = shapePoint.size * 2; // 漏斗图的 size 是柱状图的两倍\n return getRectPoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, false, true);\n const path = this.parsePath(getFunnelPath(cfg.points as Point[], cfg.nextPoints as Point[], false));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { BACKGROUND_SHAPE } from '../constant';\nimport { getBackgroundRectStyle, getStyle } from '../util/get-style';\nimport { getBackgroundRectPath, getRectPath } from './util';\n\n/** 描边柱状图 */\nregisterShape('interval', 'hollow-rect', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false);\n let group = container;\n const backgroundCfg = cfg?.background;\n if (backgroundCfg) {\n group = container.addGroup();\n const backgroundStyle = getBackgroundRectStyle(cfg);\n const backgroundPath = getBackgroundRectPath(cfg, this.parsePoints(cfg.points) as Point[], this.coordinate);\n group.addShape('path', {\n attrs: {\n ...backgroundStyle,\n path: backgroundPath,\n },\n capture: false,\n zIndex: -1,\n name: BACKGROUND_SHAPE,\n });\n }\n\n const path = this.parsePath(getRectPath(cfg.points as Point[]));\n const shape = group.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return backgroundCfg ? group : shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color, isInPolar } = markerCfg;\n if (isInPolar) {\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n stroke: color,\n fill: null,\n },\n };\n }\n\n return {\n symbol: 'square',\n style: {\n r: 4,\n stroke: color,\n fill: null,\n },\n };\n },\n});\n","import { isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getRectPath } from './util';\nimport { omit } from '../../../util/helper';\n\n// 根据数据点生成 Line 的两个关键点\nfunction getLinePoints(pointInfo: ShapePoint): Point[] {\n const { x, y, y0 } = pointInfo;\n\n if (isArray(y)) {\n return y.map((yItem, idx) => {\n return {\n x: isArray(x) ? x[idx] : x,\n y: yItem,\n };\n });\n }\n\n // 起始点从 y0 开始\n return [\n { x: x as number, y: y0 },\n { x: x as number, y },\n ];\n}\n\nregisterShape('interval', 'line', {\n getPoints(shapePoint: ShapePoint) {\n return getLinePoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false, 'lineWidth');\n const newStyle = omit({ ...style }, ['fill']);\n const path = this.parsePath(getRectPath(cfg.points as Point[], false));\n const shape = container.addShape('path', {\n attrs: {\n ...newStyle,\n path,\n },\n name: 'interval',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number) => {\n return [\n ['M', x, y - r],\n ['L', x, y + r],\n ];\n },\n style: {\n r: 5,\n stroke: color,\n },\n };\n },\n});\n","import { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\nimport { getFunnelPath, getRectPoints } from './util';\n\n/** 金字塔图,尖底漏斗图 */\nregisterShape('interval', 'pyramid', {\n getPoints(shapePoint: ShapePoint) {\n shapePoint.size = shapePoint.size * 2; // 漏斗图的 size 是柱状图的两倍\n return getRectPoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, false, true);\n const path = this.parsePath(getFunnelPath(cfg.points as Point[], cfg.nextPoints as Point[], true));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { isArray } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\n// 根据数据点生成 tick shape 的 6 个关键点\nfunction getTickPoints(pointInfo: ShapePoint): Point[] {\n const { x, y, y0, size } = pointInfo;\n let yMin;\n let yMax;\n if (isArray(y)) {\n [yMin, yMax] = y;\n } else {\n yMin = y0;\n yMax = y;\n }\n\n const xMax = (x as number) + size / 2;\n const xMin = (x as number) - size / 2;\n\n // tick 关键点顺序\n // 4 - 1 - 5\n // |\n // 2 - 0 - 3\n return [\n { x: x as number, y: yMin },\n { x: x as number, y: yMax },\n { x: xMin, y: yMin },\n { x: xMax, y: yMin },\n { x: xMin, y: yMax },\n { x: xMax, y: yMax },\n ];\n}\n\n// 根据 tick 关键点绘制 path\nfunction getTickPath(points: Point[]) {\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['M', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ];\n}\n\n/** I 形状柱状图,常用于 error bar chart */\nregisterShape('interval', 'tick', {\n getPoints(shapePoint: ShapePoint) {\n return getTickPoints(shapePoint);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false);\n const path = this.parsePath(getTickPath(cfg.points as Point[]));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n },\n name: 'interval',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: (x: number, y: number, r: number) => {\n return [\n ['M', x - r / 2, y - r],\n ['L', x + r / 2, y - r],\n ['M', x, y - r],\n ['L', x, y + r],\n ['M', x - r / 2, y + r],\n ['L', x + r / 2, y + r],\n ];\n },\n style: {\n r: 5,\n stroke: color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getPathPoints } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\nimport { getLineMarker } from './util';\n\nconst interpolateCallback = (point: Point, nextPoint: Point, shapeType: string) => {\n const x = point.x as number;\n const y = point.y as number;\n const nextX = nextPoint.x as number;\n const nextY = nextPoint.y as number;\n let result;\n\n switch (shapeType) {\n case 'hv':\n result = [{ x: nextX, y }];\n break;\n case 'vh':\n result = [{ x, y: nextY }];\n break;\n case 'hvh':\n const middleX = (nextX + x) / 2;\n result = [\n { x: middleX, y },\n { x: middleX, y: nextY },\n ];\n break;\n case 'vhv':\n const middleY = (y + nextY) / 2;\n result = [\n { x, y: middleY },\n { x: nextX, y: middleY },\n ];\n break;\n default:\n break;\n }\n\n return result;\n};\n\nfunction getInterpolatePoints(points: Point[], shapeType: string) {\n let result = [];\n each(points, (point: Point, index) => {\n const nextPoint = points[index + 1];\n result.push(point);\n if (nextPoint) {\n const interpolatePoint = interpolateCallback(point, nextPoint, shapeType);\n result = result.concat(interpolatePoint);\n }\n });\n return result;\n}\n\n// 插值的图形path,不考虑null\nfunction getInterpolatePath(points: Point[]) {\n return points.map((point, index) => {\n return index === 0 ? ['M', point.x, point.y] : ['L', point.x, point.y];\n });\n}\n\n// 插值的图形\nfunction getInterpolateShapeAttrs(cfg: ShapeInfo, shapeType: string) {\n const points = getPathPoints(cfg.points, cfg.connectNulls, cfg.showSinglePoint); // 根据 connectNulls 值处理 points\n let path = [];\n each(points, (eachLinePoints) => {\n const interpolatePoints = getInterpolatePoints(eachLinePoints, shapeType);\n path = path.concat(getInterpolatePath(interpolatePoints));\n });\n\n return {\n ...getStyle(cfg, true, false, 'lineWidth'),\n path,\n };\n}\n\n// step line\neach(['hv', 'vh', 'hvh', 'vhv'], (shapeType) => {\n registerShape('line', shapeType, {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getInterpolateShapeAttrs(cfg, shapeType);\n const shape = container.addShape({\n type: 'path',\n attrs,\n name: 'line',\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n return getLineMarker(markerCfg, shapeType);\n },\n });\n});\n","import { isArray, isNil } from '@antv/util';\nimport { IGroup, PathCommand } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction parseValue(value: number[]) {\n const array = !isArray(value) ? [value] : value;\n\n const min = array[0]; // 最小值\n const max = array[array.length - 1]; // 最大值\n const min1 = array.length > 1 ? array[1] : min;\n const max1 = array.length > 3 ? array[3] : max;\n const median = array.length > 2 ? array[2] : min1;\n\n return {\n min, // 最小值\n max, // 最大值\n min1,\n max1,\n median,\n };\n}\n\nfunction getBoxPoints(x: number | number[], y: number | number[], size: number): Point[] {\n const halfSize = size / 2;\n let pointsArray;\n if (isArray(y)) {\n // 2维\n const { min, max, median, min1, max1 } = parseValue(y);\n const minX = (x as number) - halfSize;\n const maxX = (x as number) + halfSize;\n pointsArray = [\n [minX, max],\n [maxX, max],\n [x as number, max],\n [x as number, max1],\n [minX, min1],\n [minX, max1],\n [maxX, max1],\n [maxX, min1],\n [x as number, min1],\n [x as number, min],\n [minX, min],\n [maxX, min],\n [minX, median],\n [maxX, median],\n ];\n } else {\n // 只有一个维度\n y = isNil(y) ? 0.5 : y;\n const { min, max, median, min1, max1 } = parseValue(x as number[]);\n const minY = y - halfSize;\n const maxY = y + halfSize;\n pointsArray = [\n [min, minY],\n [min, maxY],\n [min, y],\n [min1, y],\n [min1, minY],\n [min1, maxY],\n [max1, maxY],\n [max1, minY],\n [max1, y],\n [max, y],\n [max, minY],\n [max, maxY],\n [median, minY],\n [median, maxY],\n ];\n }\n\n return pointsArray.map((arr) => {\n return {\n x: arr[0],\n y: arr[1],\n };\n });\n}\n\nfunction getBoxPath(points): PathCommand[] {\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['M', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['L', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ['L', points[4].x, points[4].y], // 封闭 z\n ['Z'],\n ['M', points[8].x, points[8].y],\n ['L', points[9].x, points[9].y],\n ['M', points[10].x, points[10].y],\n ['L', points[11].x, points[11].y],\n ['M', points[12].x, points[12].y],\n ['L', points[13].x, points[13].y],\n ];\n}\n\n// box shape\nregisterShape('schema', 'box', {\n getPoints(shapePoint: ShapePoint) {\n const { x, y, size } = shapePoint;\n return getBoxPoints(x as number, y as number[], size);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, false);\n const path = this.parsePath(getBoxPath(cfg.points));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n name: 'schema',\n },\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol(x: number, y: number, r: number) {\n const yValues = [y - 6, y - 3, y, y + 3, y + 6];\n const points = getBoxPoints(x, yValues, r);\n return [\n ['M', points[0].x + 1, points[0].y],\n ['L', points[1].x - 1, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['M', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['L', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ['L', points[4].x, points[4].y],\n ['Z'],\n ['M', points[8].x, points[8].y],\n ['L', points[9].x, points[9].y],\n ['M', points[10].x + 1, points[10].y],\n ['L', points[11].x - 1, points[11].y],\n ['M', points[12].x, points[12].y],\n ['L', points[13].x, points[13].y],\n ];\n },\n style: {\n r: 6,\n lineWidth: 1,\n stroke: color,\n },\n };\n },\n});\n","import { isArray } from '@antv/util';\nimport { IGroup, PathCommand } from '../../../dependents';\nimport { Point, ShapeInfo, ShapeMarkerCfg, ShapePoint } from '../../../interface';\n\nimport { padEnd } from '../../../util/helper';\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getCandleYValues(value: number | number[]) {\n const array = !isArray(value) ? [value] : value;\n // 从大到小排序\n const sorted = array.sort((a, b) => b - a);\n return padEnd(sorted, 4, sorted[sorted.length - 1]);\n}\n\n// get candle shape's key points\nfunction getCandlePoints(x: number, y: number[], size: number): Point[] {\n const yValues = getCandleYValues(y);\n return [\n { x, y: yValues[0] },\n { x, y: yValues[1] },\n { x: x - size / 2, y: yValues[2] },\n { x: x - size / 2, y: yValues[1] },\n { x: x + size / 2, y: yValues[1] },\n { x: x + size / 2, y: yValues[2] },\n { x, y: yValues[2] },\n { x, y: yValues[3] },\n ];\n}\n\nfunction getCandlePath(points): PathCommand[] {\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['L', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['Z'],\n ['M', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ];\n}\n\n// k line shape\nregisterShape('schema', 'candle', {\n getPoints(shapePoint: ShapePoint) {\n const { x, y, size } = shapePoint;\n return getCandlePoints(x as number, y as number[], size);\n },\n draw(cfg: ShapeInfo, container: IGroup) {\n const style = getStyle(cfg, true, true);\n const path = this.parsePath(getCandlePath(cfg.points));\n const shape = container.addShape('path', {\n attrs: {\n ...style,\n path,\n name: 'schema',\n },\n });\n\n return shape;\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol(x: number, y: number, r: number) {\n const yValues = [y + 7.5, y + 3, y - 3, y - 7.5];\n const points = getCandlePoints(x, yValues, r);\n return [\n ['M', points[0].x, points[0].y],\n ['L', points[1].x, points[1].y],\n ['M', points[2].x, points[2].y],\n ['L', points[3].x, points[3].y],\n ['L', points[4].x, points[4].y],\n ['L', points[5].x, points[5].y],\n ['Z'],\n ['M', points[6].x, points[6].y],\n ['L', points[7].x, points[7].y],\n ];\n },\n style: {\n lineWidth: 1,\n stroke: color,\n fill: color,\n r: 6,\n },\n };\n },\n});\n","import { isEmpty, clamp } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nfunction getRectAttrs(points: any[], size: number) {\n const width = Math.abs(points[0].x - points[2].x);\n const height = Math.abs(points[0].y - points[2].y);\n\n let len = Math.min(width, height);\n if (size) {\n len = clamp(size, 0, Math.min(width, height));\n }\n len = len / 2;\n const centerX = (points[0].x + points[2].x) / 2;\n const centerY = (points[0].y + points[2].y) / 2;\n\n return {\n x: centerX - len,\n y: centerY - len,\n width: len * 2,\n height: len * 2,\n };\n}\n\nregisterShape('polygon', 'square', {\n draw(cfg: ShapeInfo, container: IGroup) {\n if (!isEmpty(cfg.points)) {\n const shapeAttrs = getStyle(cfg, true, true);\n const points = this.parsePoints(cfg.points); // 转换为画布坐标\n return container.addShape('rect', {\n attrs: {\n ...shapeAttrs,\n ...getRectAttrs(points, cfg.size), // 获取 rect 绘图信息\n },\n name: 'polygon',\n });\n }\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'square',\n style: {\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape } from '../base';\nimport { drawPoints, HOLLOW_SHAPES } from './util';\n\n// 添加 hollowShape\neach(HOLLOW_SHAPES, (shapeName: string) => {\n registerShape('point', shapeName, {\n draw(cfg: ShapeInfo, container: IGroup) {\n return drawPoints(this, cfg, container, shapeName, true);\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: MarkerSymbols[shapeName],\n style: {\n r: 4.5,\n stroke: color,\n fill: null,\n },\n };\n },\n });\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { registerShape } from '../base';\nimport { getStyle } from '../util/get-style';\n\nregisterShape('point', 'image', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const { r: size } = getStyle(cfg, false, false, 'r');\n const points = this.parsePoints(cfg.points);\n let pointPosition = points[0];\n if (cfg.isStack) {\n pointPosition = points[1];\n } else if (points.length > 1) {\n const group = container.addGroup();\n for (const point of points) {\n group.addShape('image', {\n attrs: {\n x: (point.x as number) - size / 2,\n y: (point.y as number) - size,\n width: size,\n height: size,\n img: cfg.shape[1],\n },\n });\n }\n\n return group;\n }\n\n return container.addShape('image', {\n attrs: {\n x: (pointPosition.x as number) - size / 2,\n y: (pointPosition.y as number) - size,\n width: size,\n height: size,\n img: cfg.shape[1],\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n r: 4.5,\n fill: color,\n },\n };\n },\n});\n","import { each } from '@antv/util';\nimport { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\n\nimport { MarkerSymbols } from '../../../util/marker';\nimport { registerShape } from '../base';\nimport { drawPoints, SHAPES } from './util';\n\n// 所有的 SHAPES 都注册一下\neach(SHAPES, (shapeName: string) => {\n registerShape('point', shapeName, {\n draw(cfg: ShapeInfo, container: IGroup) {\n return drawPoints(this, cfg, container, shapeName, false);\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: MarkerSymbols[shapeName] || shapeName,\n style: {\n r: 4.5,\n fill: color,\n },\n };\n },\n });\n});\n","import { IGroup } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\nimport { registerShape } from '../base';\nimport { getSmoothViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\n/**\n * 平滑边界的小提琴图\n */\nregisterShape('violin', 'smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getStyle(cfg, true, true);\n const path = this.parsePath(getSmoothViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...attrs,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n stroke: null,\n r: 4,\n fill: color,\n },\n };\n },\n});\n","import { IGroup, Point } from '../../../dependents';\nimport { ShapeInfo, ShapeMarkerCfg } from '../../../interface';\nimport { registerShape } from '../base';\nimport { getSmoothViolinPath, getViolinPath } from '../util/get-path-points';\nimport { getStyle } from '../util/get-style';\n\n/**\n * 空心小提琴图\n */\nregisterShape('violin', 'hollow', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getStyle(cfg, true, false);\n const path = this.parsePath(getViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...attrs,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: null,\n stroke: color,\n },\n };\n },\n});\n\n/**\n * 平滑边界的空心小提琴图\n */\nregisterShape('violin', 'hollow-smooth', {\n draw(cfg: ShapeInfo, container: IGroup) {\n const attrs = getStyle(cfg, true, false);\n const path = this.parsePath(getSmoothViolinPath(cfg.points));\n return container.addShape('path', {\n attrs: {\n ...attrs,\n path,\n },\n });\n },\n getMarker(markerCfg: ShapeMarkerCfg) {\n const { color } = markerCfg;\n return {\n symbol: 'circle',\n style: {\n r: 4,\n fill: null,\n stroke: color,\n },\n };\n },\n});\n","import { get, deepMix, isArray } from '@antv/util';\nimport { Writeable } from '../../util/types';\nimport { MappingDatum, Point } from '../../interface';\nimport GeometryLabel from './base';\nimport { LabelCfg, LabelItem, LabelPointCfg, TextAlign } from './interface';\n\n/**\n * 柱状图 label\n */\nexport default class IntervalLabel extends GeometryLabel {\n /**\n * 获取 interval label 的方向,取决于 value 的值是正还是负\n * @param labelCfg\n */\n private getLabelValueDir(mappingData: MappingDatum) {\n // points 中的 x/y 和 transpose 无关\n const dim = 'y';\n const { points } = mappingData;\n\n return points[0][dim] <= points[2][dim] ? 1 : -1;\n }\n\n /**\n * 重载:根据 interval 值的正负来调整 label 偏移量\n * @param labelCfg\n * @param index\n * @param total\n */\n protected getLabelOffsetPoint(labelCfg: LabelCfg, index: number, total: number, position?: string) {\n let point = super.getLabelOffsetPoint(labelCfg, index, total);\n const coordinate = this.getCoordinate();\n const transposed = coordinate.isTransposed;\n const dim = transposed ? 'x' : 'y';\n const dir = this.getLabelValueDir(labelCfg.mappingData);\n point = { ...point, [dim]: point[dim] * dir };\n\n if (coordinate.isReflect('x')) {\n point = {\n ...point,\n x: point.x * -1,\n };\n }\n if (coordinate.isReflect('y')) {\n point = {\n ...point,\n y: point.y * -1,\n };\n }\n\n return point;\n }\n\n /**\n * 重载:定制 interval label 的默认主题配置\n * @param labelCfg\n */\n protected getThemedLabelCfg(labelCfg: LabelCfg) {\n const geometry = this.geometry;\n const defaultLabelCfg = this.getDefaultLabelCfg();\n const { theme } = geometry;\n\n // 如果 interval label position 设置为 middle,则将主题中的 offset 覆盖为 0\n return deepMix({}, defaultLabelCfg, theme.labels, labelCfg.position === 'middle' ? { offset: 0 } : {}, labelCfg);\n }\n\n protected setLabelPosition(\n labelPointCfg: Writeable,\n mappingData: MappingDatum,\n index: number,\n position: string\n ) {\n const coordinate = this.getCoordinate();\n const transposed = coordinate.isTransposed;\n const shapePoints = mappingData.points as Point[];\n const point0 = coordinate.convert(shapePoints[0]);\n const point2 = coordinate.convert(shapePoints[2]);\n const dir = this.getLabelValueDir(mappingData);\n\n let top;\n let right;\n let bottom;\n let left;\n\n const shape = isArray(mappingData.shape) ? mappingData.shape[0] : mappingData.shape;\n if (shape === 'funnel' || shape === 'pyramid') {\n // 处理漏斗图\n const nextPoints = get(mappingData, 'nextPoints');\n const points = get(mappingData, 'points');\n if (nextPoints) {\n // 非漏斗图底部\n const p0 = coordinate.convert(points[0] as Point);\n const p1 = coordinate.convert(points[1] as Point);\n const nextP0 = coordinate.convert(nextPoints[0] as Point);\n const nextP1 = coordinate.convert(nextPoints[1] as Point);\n\n // TODO: 使用包围盒的计算方法\n if (transposed) {\n top = Math.min(nextP0.y, p0.y);\n bottom = Math.max(nextP0.y, p0.y);\n right = (p1.x + nextP1.x) / 2;\n left = (p0.x + nextP0.x) / 2;\n } else {\n top = Math.min((p1.y + nextP1.y) / 2, (p0.y + nextP0.y) / 2);\n bottom = Math.max((p1.y + nextP1.y) / 2, (p0.y + nextP0.y) / 2);\n right = nextP1.x;\n left = p0.x;\n }\n } else {\n top = Math.min(point2.y, point0.y);\n bottom = Math.max(point2.y, point0.y);\n right = point2.x;\n left = point0.x;\n }\n } else {\n top = Math.min(point2.y, point0.y);\n bottom = Math.max(point2.y, point0.y);\n right = point2.x;\n left = point0.x;\n }\n\n switch (position) {\n case 'right':\n labelPointCfg.x = right;\n labelPointCfg.y = (top + bottom) / 2;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', dir > 0 ? 'left' : 'right');\n break;\n case 'left':\n labelPointCfg.x = left;\n labelPointCfg.y = (top + bottom) / 2;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', dir > 0 ? 'left' : 'right');\n break;\n case 'bottom':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\n labelPointCfg.y = bottom;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', 'center');\n labelPointCfg.textBaseline = get(labelPointCfg, 'textBaseline', dir > 0 ? 'bottom' : 'top');\n break;\n case 'middle':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\n labelPointCfg.y = (top + bottom) / 2;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', 'center');\n labelPointCfg.textBaseline = get(labelPointCfg, 'textBaseline', 'middle');\n break;\n case 'top':\n if (transposed) {\n labelPointCfg.x = (right + left) / 2;\n }\n labelPointCfg.y = top;\n labelPointCfg.textAlign = get(labelPointCfg, 'textAlign', 'center');\n labelPointCfg.textBaseline = get(labelPointCfg, 'textBaseline', dir > 0 ? 'bottom' : 'top');\n break;\n default:\n break;\n }\n }\n}\n","import { each, get, isArray, map, isNumber, isString } from '@antv/util';\nimport { MappingDatum, Point } from '../../interface';\nimport { getDistanceToCenter } from '../../util/coordinate';\nimport { getAngleByPoint } from '../../util/coordinate';\nimport GeometryLabel from './base';\nimport { LabelCfg, LabelItem, PolarLabelItem, LabelPointCfg, Writeable } from './interface';\n\nconst HALF_PI = Math.PI / 2;\n\n/**\n * 极坐标下的图形 label\n */\nexport default class PolarLabel extends GeometryLabel {\n /**\n * @override\n * @desc 获取 label offset\n * polar & theta coordinate support「string」type, should transform to 「number」\n */\n protected getLabelOffset(offset: number | string): number {\n const coordinate = this.getCoordinate();\n let actualOffset = 0;\n if (isNumber(offset)) {\n actualOffset = offset;\n } else if (isString(offset) && offset.indexOf('%') !== -1) {\n let r = coordinate.getRadius();\n if (coordinate.innerRadius > 0) {\n r = r * (1 - coordinate.innerRadius);\n }\n actualOffset = parseFloat(offset) * 0.01 * r;\n }\n\n return actualOffset;\n }\n\n /**\n * @override\n * 获取 labelItems, 增加切片 percent\n * @param mapppingArray\n */\n public getLabelItems(mapppingArray: MappingDatum[]): PolarLabelItem[] {\n const items = super.getLabelItems(mapppingArray);\n const yScale = this.geometry.getYScale();\n\n return map(items, (item) => {\n if (item && yScale) {\n const percent = yScale.scale(get(item.data, yScale.field));\n return { ...item, percent };\n }\n return item;\n });\n }\n /**\n * @override\n * 获取文本的对齐方式\n * @param point\n */\n protected getLabelAlign(point: LabelItem) {\n const coordinate = this.getCoordinate();\n let align;\n if (point.labelEmit) {\n align = point.angle <= Math.PI / 2 && point.angle >= -Math.PI / 2 ? 'left' : 'right';\n } else if (!coordinate.isTransposed) {\n align = 'center';\n } else {\n const center = coordinate.getCenter();\n const offset = point.offset;\n if (Math.abs(point.x - center.x) < 1) {\n align = 'center';\n } else if (point.angle > Math.PI || point.angle <= 0) {\n align = offset > 0 ? 'left' : 'right';\n } else {\n align = offset > 0 ? 'right' : 'left';\n }\n }\n return align;\n }\n\n /**\n * @override\n * 获取 label 的位置\n * @param labelCfg\n * @param mappingData\n * @param index\n */\n protected getLabelPoint(labelCfg: LabelCfg, mappingData: MappingDatum, index: number): LabelPointCfg {\n let factor = 1;\n let arcPoint;\n const content = labelCfg.content[index];\n if (this.isToMiddle(mappingData)) {\n arcPoint = this.getMiddlePoint(mappingData.points as Point[]);\n } else {\n if (labelCfg.content.length === 1 && index === 0) {\n index = 1;\n } else if (index === 0) {\n factor = -1;\n }\n arcPoint = this.getArcPoint(mappingData, index);\n }\n\n const offset = labelCfg.offset * factor;\n const middleAngle = this.getPointAngle(arcPoint);\n const isLabelEmit = labelCfg.labelEmit;\n const labelPositionCfg: Writeable = this.getCirclePoint(middleAngle, offset, arcPoint, isLabelEmit);\n if (labelPositionCfg.r === 0) {\n // 如果文本位置位于圆心,则不展示\n labelPositionCfg.content = '';\n } else {\n labelPositionCfg.content = content;\n labelPositionCfg.angle = middleAngle;\n labelPositionCfg.color = mappingData.color;\n }\n\n labelPositionCfg.rotate = labelCfg.autoRotate\n ? this.getLabelRotate(middleAngle, offset, isLabelEmit)\n : labelCfg.rotate;\n labelPositionCfg.start = {\n x: arcPoint.x,\n y: arcPoint.y,\n };\n return labelPositionCfg;\n }\n\n /**\n * 获取圆弧的位置\n */\n protected getArcPoint(mappingData: MappingDatum, index: number = 0): Point {\n if (!isArray(mappingData.x) && !isArray(mappingData.y)) {\n return {\n x: mappingData.x,\n y: mappingData.y,\n };\n }\n\n return {\n x: isArray(mappingData.x) ? mappingData.x[index] : mappingData.x,\n y: isArray(mappingData.y) ? mappingData.y[index] : mappingData.y,\n };\n }\n\n /**\n * 计算坐标线点在极坐标系下角度\n * @param point\n */\n protected getPointAngle(point: Point): number {\n return getAngleByPoint(this.getCoordinate(), point);\n }\n\n /**\n * 获取坐标点与圆心形成的圆的位置信息\n * @param angle\n * @param offset\n * @param point\n * @param isLabelEmit\n */\n protected getCirclePoint(angle: number, offset: number, point: Point, isLabelEmit: boolean) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n let r = getDistanceToCenter(coordinate, point);\n if (r === 0) {\n return {\n ...center,\n r,\n };\n }\n\n let labelAngle = angle;\n if (coordinate.isTransposed && r > offset && !isLabelEmit) {\n const appendAngle = Math.asin(offset / (2 * r));\n labelAngle = angle + appendAngle * 2;\n } else {\n r = r + offset;\n }\n\n return {\n x: center.x + r * Math.cos(labelAngle),\n y: center.y + r * Math.sin(labelAngle),\n r,\n };\n }\n\n /**\n * 获取 label 的旋转角度\n * @param angle\n * @param offset\n * @param isLabelEmit\n */\n protected getLabelRotate(angle: number, offset: number, isLabelEmit: boolean) {\n let rotate = angle + HALF_PI;\n if (isLabelEmit) {\n rotate -= HALF_PI;\n }\n if (rotate) {\n if (rotate > HALF_PI) {\n rotate = rotate - Math.PI;\n } else if (rotate < -HALF_PI) {\n rotate = rotate + Math.PI;\n }\n }\n return rotate;\n }\n\n // 获取中心的位置\n private getMiddlePoint(points: Point[]) {\n const coordinate = this.getCoordinate();\n const count = points.length;\n let middlePoint = {\n x: 0,\n y: 0,\n };\n each(points, (point: Point) => {\n middlePoint.x += point.x;\n middlePoint.y += point.y;\n });\n middlePoint.x /= count;\n middlePoint.y /= count;\n\n middlePoint = coordinate.convert(middlePoint);\n return middlePoint;\n }\n\n // 是否居中\n private isToMiddle(mappingData: MappingDatum) {\n return (mappingData.x as number[]).length > 2;\n }\n}\n","import { deepMix, get, isArray } from '@antv/util';\nimport { getAngleByPoint } from '../../util/coordinate';\nimport { polarToCartesian } from '../../util/graphics';\nimport { LabelItem } from './interface';\nimport PolarLabel from './polar';\n\n/**\n * 饼图 label\n */\nexport default class PieLabel extends PolarLabel {\n public defaultLayout = 'distribute';\n\n protected getDefaultLabelCfg(offset?: number, position?: string) {\n const cfg = super.getDefaultLabelCfg(offset, position);\n return deepMix({}, cfg, get(this.geometry.theme, 'pieLabels', {}));\n }\n\n /** @override */\n protected getLabelOffset(offset: string | number): number {\n return super.getLabelOffset(offset) || 0;\n }\n\n protected getLabelRotate(angle: number, offset: number, isLabelLimit: boolean) {\n let rotate;\n if (offset < 0) {\n rotate = angle;\n if (rotate > Math.PI / 2) {\n rotate = rotate - Math.PI;\n }\n if (rotate < -Math.PI / 2) {\n rotate = rotate + Math.PI;\n }\n }\n return rotate;\n }\n\n protected getLabelAlign(point: LabelItem) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n\n let align;\n if (point.angle <= Math.PI / 2 && point.x >= center.x) {\n align = 'left';\n } else {\n align = 'right';\n }\n if (point.offset <= 0) {\n if (align === 'right') {\n align = 'left';\n } else {\n align = 'right';\n }\n }\n return align;\n }\n\n protected getArcPoint(point) {\n return point;\n }\n\n protected getPointAngle(point) {\n const coordinate = this.getCoordinate();\n const startPoint = {\n x: isArray(point.x) ? point.x[0] : point.x,\n y: point.y[0],\n };\n const endPoint = {\n x: isArray(point.x) ? point.x[1] : point.x,\n y: point.y[1],\n };\n let angle;\n const startAngle = getAngleByPoint(coordinate, startPoint);\n if (point.points && point.points[0].y === point.points[1].y) {\n angle = startAngle;\n } else {\n let endAngle = getAngleByPoint(coordinate, endPoint);\n if (startAngle >= endAngle) {\n // 100% pie slice\n endAngle = endAngle + Math.PI * 2;\n }\n angle = startAngle + (endAngle - startAngle) / 2;\n }\n return angle;\n }\n\n /** @override */\n protected getCirclePoint(angle: number, offset: number) {\n const coordinate = this.getCoordinate();\n const center = coordinate.getCenter();\n const r = coordinate.getRadius() + offset;\n return {\n ...polarToCartesian(center.x, center.y, r, angle),\n angle,\n r,\n };\n }\n}\n","import { isObject, each, find, get } from '@antv/util';\n\nimport { BBox, IGroup, IShape } from '../../../../dependents';\nimport { LabelItem } from '../../interface';\n\nimport { polarToCartesian } from '../../../../util/graphics';\nimport { IElement } from '@antv/g-base';\n\n/** label text和line距离 4px */\nconst MARGIN = 4;\n\nfunction antiCollision(labelShapes, labels, lineHeight, plotRange, center, isRight) {\n // adjust y position of labels to avoid overlapping\n let overlapping = true;\n const start = plotRange.start;\n const end = plotRange.end;\n const startY = Math.min(start.y, end.y);\n let totalHeight = Math.abs(start.y - end.y);\n let i;\n\n let maxY = 0;\n let minY = Number.MIN_VALUE;\n const boxes = labels.map((label) => {\n if (label.y > maxY) {\n maxY = label.y;\n }\n if (label.y < minY) {\n minY = label.y;\n }\n return {\n size: lineHeight,\n targets: [label.y - startY],\n };\n });\n minY -= startY;\n if (maxY - startY > totalHeight) {\n totalHeight = maxY - startY;\n }\n\n while (overlapping) {\n /* eslint no-loop-func: 0 */\n boxes.forEach((box) => {\n const target = (Math.min.apply(minY, box.targets) + Math.max.apply(minY, box.targets)) / 2;\n box.pos = Math.min(Math.max(minY, target - box.size / 2), totalHeight - box.size);\n // box.pos = Math.max(0, target - box.size / 2);\n });\n\n // detect overlapping and join boxes\n overlapping = false;\n i = boxes.length;\n while (i--) {\n if (i > 0) {\n const previousBox = boxes[i - 1];\n const box = boxes[i];\n if (previousBox.pos + previousBox.size > box.pos) {\n // overlapping\n previousBox.size += box.size;\n previousBox.targets = previousBox.targets.concat(box.targets);\n\n // overflow, shift up\n if (previousBox.pos + previousBox.size > totalHeight) {\n previousBox.pos = totalHeight - previousBox.size;\n }\n boxes.splice(i, 1); // removing box\n overlapping = true;\n }\n }\n }\n }\n\n i = 0;\n // step 4: normalize y and adjust x\n boxes.forEach((b) => {\n let posInCompositeBox = startY + lineHeight / 2; // middle of the label\n b.targets.forEach(() => {\n labels[i].y = b.pos + posInCompositeBox;\n posInCompositeBox += lineHeight;\n i++;\n });\n });\n\n const labelsMap = {};\n for (const labelShape of labelShapes) {\n labelsMap[labelShape.get('id')] = labelShape;\n }\n\n // (x - cx)^2 + (y - cy)^2 = totalR^2\n labels.forEach((label) => {\n const rPow2 = label.r * label.r;\n const dyPow2 = Math.pow(Math.abs(label.y - center.y), 2);\n if (rPow2 < dyPow2) {\n label.x = center.x;\n } else {\n const dx = Math.sqrt(rPow2 - dyPow2);\n if (!isRight) {\n // left\n label.x = center.x - dx;\n } else {\n // right\n label.x = center.x + dx;\n }\n }\n\n // adjust labelShape\n const labelShape = labelsMap[label.id];\n labelShape.attr('x', label.x);\n labelShape.attr('y', label.y);\n\n // because group could not effect text-shape, should set text-shape position manually\n const textShape = find(labelShape.getChildren(), (ele) => ele.get('type') === 'text') as IElement;\n // @ts-ignore\n if (textShape) {\n textShape.attr('y', label.y);\n textShape.attr('x', label.x);\n }\n });\n}\n\nexport function distribute(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[], region: BBox) {\n if (!items.length || !labels.length) {\n return;\n }\n const offset = items[0] ? items[0].offset : 0;\n const coordinate = labels[0].get('coordinate');\n const radius = coordinate.getRadius();\n const center = coordinate.getCenter();\n\n if (offset > 0) {\n // const lineHeight = get(this.geometry.theme, ['pieLabels', 'labelHeight'], 14);\n const lineHeight = 14; // TODO\n const totalR = radius + offset;\n const totalHeight = totalR * 2 + lineHeight * 2;\n const plotRange = {\n start: coordinate.start,\n end: coordinate.end,\n };\n\n // step 1: separate labels\n const halves = [\n [], // left\n [], // right\n ];\n items.forEach((labelItem) => {\n if (!labelItem) {\n return;\n }\n if (labelItem.textAlign === 'right') {\n // left\n halves[0].push(labelItem);\n } else {\n // right or center will be put on the right side\n halves[1].push(labelItem);\n }\n });\n\n halves.forEach((half, index) => {\n // step 2: reduce labels\n const maxLabelsCountForOneSide = totalHeight / lineHeight;\n if (half.length > maxLabelsCountForOneSide) {\n half.sort((a, b) => {\n // sort by percentage DESC\n return b['..percent'] - a['..percent'];\n });\n half.splice(maxLabelsCountForOneSide, half.length - maxLabelsCountForOneSide);\n }\n\n // step 3: distribute position (x and y)\n half.sort((a, b) => {\n // sort by y ASC\n return a.y - b.y;\n });\n\n antiCollision(labels, half, lineHeight, plotRange, center, index);\n });\n }\n\n // 配置 labelLine\n each(items, (item) => {\n if (item && item.labelLine) {\n const distance = item.offset;\n const angle = item.angle;\n // 贴近圆周\n const startPoint = polarToCartesian(center.x, center.y, radius, angle);\n const innerPoint = polarToCartesian(center.x, center.y, radius + distance / 2, angle);\n const itemX = item.x + get(item, 'offsetX', 0);\n const itemY = item.y + get(item, 'offsetY', 0);\n const endPoint = {\n x: itemX - Math.cos(angle) * MARGIN,\n y: itemY - Math.sin(angle) * MARGIN,\n };\n if (!isObject(item.labelLine)) {\n // labelLine: true\n item.labelLine = {};\n }\n item.labelLine.path = [\n `M ${startPoint.x}`,\n `${startPoint.y} Q${innerPoint.x}`,\n `${innerPoint.y} ${endPoint.x}`,\n endPoint.y,\n ].join(',');\n }\n });\n}\n","import { PolarLabelItem } from '../../interface';\n\n/**\n * 碰撞检测算法\n */\nexport function antiCollision(\n items: PolarLabelItem[],\n labelHeight: number,\n plotRange: { minY: number; maxY: number; minX: number; maxX: number }\n) {\n const labels = items.filter((item) => !item.invisible);\n\n // sorted by y, mutable\n labels.sort((a, b) => a.y - b.y);\n // adjust y position of labels to avoid overlapping\n let overlapping = true;\n const startY = plotRange.minY;\n const endY = plotRange.maxY;\n let totalHeight = Math.abs(startY - endY);\n let i;\n\n let maxY = 0;\n let minY = Number.MIN_VALUE;\n const boxes = labels.map((label) => {\n if (label.y > maxY) {\n maxY = label.y;\n }\n if (label.y < minY) {\n minY = label.y;\n }\n return {\n content: label.content,\n size: labelHeight,\n targets: [label.y - startY],\n pos: null,\n };\n });\n\n minY -= startY;\n if (maxY - startY > totalHeight) {\n totalHeight = maxY - startY;\n }\n\n while (overlapping) {\n /* eslint no-loop-func: 0 */\n boxes.forEach((box) => {\n const target = (Math.min.apply(minY, box.targets) + Math.max.apply(minY, box.targets)) / 2;\n box.pos = Math.min(Math.max(minY, target - box.size / 2), totalHeight - box.size);\n box.pos = Math.max(0, box.pos);\n });\n\n // detect overlapping and join boxes\n overlapping = false;\n i = boxes.length;\n while (i--) {\n if (i > 0) {\n const previousBox = boxes[i - 1];\n const box = boxes[i];\n if (previousBox.pos + previousBox.size > box.pos) {\n // overlapping\n previousBox.size += box.size;\n previousBox.targets = previousBox.targets.concat(box.targets);\n\n // overflow, shift up\n if (previousBox.pos + previousBox.size > totalHeight) {\n previousBox.pos = totalHeight - previousBox.size;\n }\n boxes.splice(i, 1); // removing box\n overlapping = true;\n }\n }\n }\n }\n\n i = 0;\n // step 4: normalize y and adjust x\n boxes.forEach((b) => {\n let posInCompositeBox = startY + labelHeight / 2; // middle of the label\n b.targets.forEach(() => {\n labels[i].y = b.pos + posInCompositeBox;\n posInCompositeBox += labelHeight;\n i++;\n });\n });\n}\n","import { Coordinate } from '@antv/coord';\nimport { BBox, IGroup, IShape, IElement } from '@antv/g-base';\nimport { isObject, each, get, groupBy, isNil, filter } from '@antv/util';\nimport { polarToCartesian } from '../../../../util/graphics';\nimport { PolarLabelItem } from '../../interface';\nimport { antiCollision } from './util';\n\n/** label text和line距离 4px */\nconst MARGIN = 4;\n\n/**\n * 配置 labelline\n * @param item PolarLabelItem\n */\nfunction drawLabelline(item: any /** PolarLabelItem */, coordinate: Coordinate) {\n /** 坐标圆心 */\n const center = coordinate.getCenter();\n /** 圆半径 */\n const radius = coordinate.getRadius();\n\n if (item && item.labelLine) {\n const { angle, offset: labelOffset } = item;\n // 贴近圆周\n const startPoint = polarToCartesian(center.x, center.y, radius, angle);\n const itemX = item.x + get(item, 'offsetX', 0) * (Math.cos(angle) > 0 ? 1 : -1);\n const itemY = item.y + get(item, 'offsetY', 0) * (Math.sin(angle) > 0 ? 1 : -1);\n\n const endPoint = {\n x: itemX - Math.cos(angle) * MARGIN,\n y: itemY - Math.sin(angle) * MARGIN,\n };\n\n const smoothConnector = item.labelLine.smooth;\n const path = [];\n const dx = endPoint.x - center.x;\n const dy = endPoint.y - center.y;\n let endAngle = Math.atan(dy / dx);\n // 第三象限 & 第四象限\n if (dx < 0) {\n endAngle += Math.PI;\n }\n\n // 默认 smooth, undefined 也为 smooth\n if (smoothConnector === false) {\n if (!isObject(item.labelLine)) {\n // labelLine: true\n item.labelLine = {};\n }\n\n // 表示弧线的方向,0 表示从起点到终点沿逆时针画弧, 1 表示顺时针\n let sweepFlag = 0;\n\n // 第一象限\n if ((angle < 0 && angle > -Math.PI / 2) || angle > Math.PI * 1.5) {\n if (endPoint.y > startPoint.y) {\n sweepFlag = 1;\n }\n }\n\n // 第二象限\n if (angle >= 0 && angle < Math.PI / 2) {\n if (endPoint.y > startPoint.y) {\n sweepFlag = 1;\n }\n }\n\n // 第三象限\n if (angle >= Math.PI / 2 && angle < Math.PI) {\n if (startPoint.y > endPoint.y) {\n sweepFlag = 1;\n }\n }\n\n // 第四象限\n if (angle < -Math.PI / 2 || (angle >= Math.PI && angle < Math.PI * 1.5)) {\n if (startPoint.y > endPoint.y) {\n sweepFlag = 1;\n }\n }\n\n const distance = labelOffset / 2 > 4 ? 4 : Math.max(labelOffset / 2 - 1, 0);\n const breakPoint = polarToCartesian(center.x, center.y, radius + distance, angle);\n // 圆弧的结束点\n const breakPoint3 = polarToCartesian(center.x, center.y, radius + labelOffset / 2, endAngle);\n\n /**\n * @example\n * M 100 100 L100 90 A 50 50 0 0 0 150 50\n * 移动至 (100, 100), 连接到 (100, 90), 以 (50, 50) 为圆心,绘制圆弧至 (150, 50);\n * A 命令的第 4 个参数 large-arc-flag, 决定弧线是大于还是小于 180 度: 0 表示小角度弧,1 表示大角\n * 第 5 个参数: 是否顺时针绘制\n */\n // 默认小弧\n const largeArcFlag = 0;\n // step1: 移动至起点\n path.push(`M ${startPoint.x} ${startPoint.y}`);\n // step2: 连接拐点\n path.push(`L ${breakPoint.x} ${breakPoint.y}`);\n // step3: 绘制圆弧 至 结束点\n path.push(`A ${center.x} ${center.y} 0 ${largeArcFlag} ${sweepFlag} ${breakPoint3.x} ${breakPoint3.y}`);\n // step4: 连接结束点\n path.push(`L ${endPoint.x} ${endPoint.y}`);\n } else {\n const breakPoint = polarToCartesian(\n center.x,\n center.y,\n radius + (labelOffset / 2 > 4 ? 4 : Math.max(labelOffset / 2 - 1, 0)),\n angle\n );\n // G2 旧的拉线\n // path.push('Q', `${breakPoint.x}`, `${breakPoint.y}`, `${endPoint.x}`, `${endPoint.y}`);\n const xSign = startPoint.x < center.x ? 1 : -1;\n // step1: 连接结束点\n path.push(`M ${endPoint.x} ${endPoint.y}`);\n const slope1 = (startPoint.y - center.y) / (startPoint.x - center.x);\n const slope2 = (endPoint.y - center.y) / (endPoint.x - center.x);\n if (Math.abs(slope1 - slope2) > Math.pow(Math.E, -16)) {\n // step2: 绘制 curve line (起点 & 结合点与圆心的斜率不等时, 由于存在误差, 使用近似处理)\n path.push(\n ...[\n 'C',\n endPoint.x + xSign * 4,\n endPoint.y,\n 2 * breakPoint.x - startPoint.x,\n 2 * breakPoint.y - startPoint.y,\n startPoint.x,\n startPoint.y,\n ]\n );\n }\n // step3: 连接至起点\n path.push(`L ${startPoint.x} ${startPoint.y}`);\n }\n item.labelLine.path = path.join(' ');\n }\n}\n\n/**\n * 饼图 outer-label 布局, 适用于 type = pie 且 label offset > 0 的标签\n */\nexport function pieOuterLabelLayout(\n originalItems: PolarLabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox\n) {\n const items = filter(originalItems, (item) => !isNil(item));\n /** 坐标系 */\n const coordinate = labels[0] && labels[0].get('coordinate');\n if (!coordinate) {\n return;\n }\n\n /** 坐标圆心 */\n const center = coordinate.getCenter();\n /** 圆半径 */\n const radius = coordinate.getRadius();\n /** label shapes */\n const labelsMap: Record = {};\n for (const labelShape of labels) {\n labelsMap[labelShape.get('id')] = labelShape;\n }\n\n // note labelHeight 可以控制 label 的行高\n const labelHeight: number = get(items[0], 'labelHeight', 14);\n const labelOffset: number = get(items[0], 'offset', 0);\n\n if (labelOffset <= 0) {\n return;\n }\n\n const LEFT_HALF_KEY = 'left';\n const RIGHT_HALF_KEY = 'right';\n // step 1: separate labels\n const separateLabels = groupBy(items, (item) => (item.x < center.x ? LEFT_HALF_KEY : RIGHT_HALF_KEY));\n\n const { start, end } = coordinate;\n // step2: calculate totalHeight\n const totalHeight = Math.min((radius + labelOffset + labelHeight) * 2, coordinate.getHeight());\n const totalR = totalHeight / 2;\n\n /** labels 容器的范围(后续根据组件的布局设计进行调整) */\n const labelsContainerRange = {\n minX: start.x,\n maxX: end.x,\n minY: center.y - totalR,\n maxY: center.y + totalR,\n };\n\n // step 3: antiCollision\n each(separateLabels, (half, key) => {\n const maxLabelsCountForOneSide = Math.floor(totalHeight / labelHeight);\n if (half.length > maxLabelsCountForOneSide) {\n half.sort((a, b) => {\n // sort by percentage DESC\n return b.percent - a.percent;\n });\n\n each(half, (labelItem: PolarLabelItem, idx) => {\n if (idx + 1 > maxLabelsCountForOneSide) {\n labelsMap[labelItem.id].set('visible', false);\n labelItem.invisible = true;\n }\n });\n }\n antiCollision(half, labelHeight, labelsContainerRange);\n });\n\n each(separateLabels, (half: PolarLabelItem[], key: string) => {\n each(half, (item: PolarLabelItem) => {\n const isRight = key === RIGHT_HALF_KEY;\n const labelShape = labelsMap[item.id];\n\n // because group could not effect content-shape, should set content-shape position manually\n const content = labelShape.getChildByIndex(0) as IElement;\n\n // textShape 发生过调整\n if (content) {\n const r = radius + labelOffset;\n // (x - cx)^2 + (y - cy)^2 = totalR^2\n const dy = item.y - center.y;\n\n const rPow2 = Math.pow(r, 2);\n const dyPow2 = Math.pow(dy, 2);\n const dxPow2 = rPow2 - dyPow2 > 0 ? rPow2 - dyPow2 : 0;\n const dx = Math.sqrt(dxPow2);\n\n const dx_offset = Math.abs(Math.cos(item.angle) * r);\n if (!isRight) {\n // left\n item.x = center.x - Math.max(dx, dx_offset);\n } else {\n // right\n item.x = center.x + Math.max(dx, dx_offset);\n }\n }\n\n // adjust labelShape\n if (content) {\n content.attr('y', item.y);\n content.attr('x', item.x);\n }\n\n drawLabelline(item, coordinate);\n });\n });\n}\n","import { BBox, IGroup, IShape } from '@antv/g-base';\nimport { each, get, isNil, deepMix, groupBy } from '@antv/util';\nimport { polarToCartesian } from '../../../../util/graphics';\nimport { LabelItem, PolarLabelItem } from '../../interface';\nimport { antiCollision } from './util';\nimport { translate } from '../../../../util/transform';\nimport { Coordinate } from '@antv/coord';\n\n/** 拐点偏移量, 暂不可配置 */\nconst INFLECTION_OFFSET = 4;\n/** 标签偏移量, distance between label and edge: offsetX */\nconst LABEL_OFFSET_X = 4;\n/** 标签与牵引线的偏移量 */\nconst LABEL_TEXT_LINE_OFFSET = 4;\n\nfunction drawLabelline(item: PolarLabelItem, coordinate: Coordinate, inRight: boolean) {\n /** 坐标圆心 */\n const center = coordinate.getCenter();\n /** 圆半径 */\n const radius = coordinate.getRadius();\n const startPoint = {\n x: item.x - (inRight ? LABEL_TEXT_LINE_OFFSET : -LABEL_TEXT_LINE_OFFSET),\n y: item.y,\n };\n const inflectionPoint = polarToCartesian(center.x, center.y, radius + INFLECTION_OFFSET, item.angle);\n const p1 = { x: startPoint.x, y: startPoint.y };\n const p2 = { x: inflectionPoint.x, y: inflectionPoint.y };\n\n const endPoint = polarToCartesian(center.x, center.y, radius, item.angle);\n let path = '';\n\n // 文本被调整下去了,则添加拐点连接线\n if (startPoint.y !== inflectionPoint.y) {\n const offset = inRight ? 4 : -4;\n p1.y = startPoint.y;\n\n /** 是否在第一象限 */\n if (item.angle < 0 && item.angle >= -Math.PI / 2) {\n p1.x = Math.max(inflectionPoint.x, startPoint.x - offset);\n if (startPoint.y < inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.max(p2.x, p1.x - offset);\n }\n }\n /** 是否在 第二象限 */\n if (item.angle > 0 && item.angle < Math.PI / 2) {\n p1.x = Math.max(inflectionPoint.x, startPoint.x - offset);\n if (startPoint.y > inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.max(p2.x, p1.x - offset);\n }\n }\n /** 是否在 第三象限 */\n if (item.angle > Math.PI / 2) {\n p1.x = Math.min(inflectionPoint.x, startPoint.x - offset);\n if (startPoint.y > inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.min(p2.x, p1.x - offset);\n }\n }\n /** 是否在 第四象限 */\n if (item.angle < -Math.PI / 2) {\n p1.x = Math.min(inflectionPoint.x, startPoint.x - offset);\n if (startPoint.y < inflectionPoint.y) {\n p2.y = p1.y;\n } else {\n p2.y = inflectionPoint.y;\n p2.x = Math.min(p2.x, p1.x - offset);\n }\n }\n }\n\n path = [\n `M ${startPoint.x},${startPoint.y}`,\n `L ${p1.x},${p1.y}`,\n `L ${p2.x},${p2.y}`,\n `L ${inflectionPoint.x},${inflectionPoint.y}`,\n `L ${endPoint.x},${endPoint.y}`,\n ].join(' ');\n item.labelLine = deepMix({}, item.labelLine, { path });\n}\n\n/**\n * 饼图标签 spider 布局, 只适用于 pie-spider 的标签类型\n * region 应该是 labelsRenderer 容器的范围限制(便于后续组件间布局)\n */\nexport function pieSpiderLabelLayout(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[], region: BBox) {\n /** 坐标系 */\n const coordinate = labels[0] && labels[0].get('coordinate');\n if (!coordinate) {\n return;\n }\n\n /** 坐标圆心 */\n const center = coordinate.getCenter();\n /** 圆半径 */\n const radius = coordinate.getRadius();\n /** label shapes */\n const labelsMap: Record = {};\n for (const labelShape of labels) {\n labelsMap[labelShape.get('id')] = labelShape;\n }\n\n const labelHeight: number = get(items[0], 'labelHeight', 14);\n const labelOffset: number = Math.max(get(items[0], 'offset', 0), INFLECTION_OFFSET);\n\n // step 1: adjust items to spider\n each(items, (item) => {\n if (!item) return;\n const label = get(labelsMap, [item.id]);\n if (!label) return;\n\n const inRight = item.x > center.x || (item.x === center.x && item.y > center.y);\n const offsetX = !isNil(item.offsetX) ? item.offsetX : LABEL_OFFSET_X;\n const inflectionPoint = polarToCartesian(center.x, center.y, radius + INFLECTION_OFFSET, item.angle);\n\n const totalOffset = labelOffset + offsetX;\n item.x = center.x + (inRight ? 1 : -1) * (radius + totalOffset);\n item.y = inflectionPoint.y;\n });\n\n const { start, end } = coordinate;\n const LEFT_HALF_KEY = 'left';\n const RIGHT_HALF_KEY = 'right';\n // step 1: separate labels\n const separateLabels = groupBy(items, (item) => (item.x < center.x ? LEFT_HALF_KEY : RIGHT_HALF_KEY));\n\n // step2: calculate totalHeight\n let totalHeight = (radius + labelOffset) * 2 + labelHeight;\n\n each(separateLabels, (half: PolarLabelItem[]) => {\n const halfHeight = half.length * labelHeight;\n if (halfHeight > totalHeight) {\n totalHeight = Math.min(halfHeight, Math.abs(start.y - end.y));\n }\n });\n\n /** labels 容器的范围(后续根据组件的布局设计进行调整) */\n const labelsContainerRange = {\n minX: start.x,\n maxX: end.x,\n minY: center.y - totalHeight / 2,\n maxY: center.y + totalHeight / 2,\n };\n\n // step 3: antiCollision\n each(separateLabels, (half, key) => {\n const maxLabelsCountForOneSide = totalHeight / labelHeight;\n if (half.length > maxLabelsCountForOneSide) {\n half.sort((a, b) => {\n // sort by percentage DESC\n return b.percent - a.percent;\n });\n\n each(half, (labelItem: PolarLabelItem, idx) => {\n if (idx > maxLabelsCountForOneSide) {\n labelsMap[labelItem.id].set('visible', false);\n labelItem.invisible = true;\n }\n });\n }\n antiCollision(half, labelHeight, labelsContainerRange);\n });\n\n const startY = labelsContainerRange.minY;\n const endY = labelsContainerRange.maxY;\n\n // step4: applyTo labels and adjust labelLines\n each(separateLabels, (half, key) => {\n const inRight = key === RIGHT_HALF_KEY;\n\n each(half, (item) => {\n const label: IGroup = get(labelsMap, item && [item.id]);\n if (!label) {\n return;\n }\n // out of range, hidden\n if (item.y < startY || item.y > endY) {\n label.set('visible', false);\n return;\n }\n\n const labelContent = label.getChildByIndex(0);\n const box = labelContent.getCanvasBBox();\n const originalPos = { x: inRight ? box.x : box.maxX, y: box.y + box.height / 2 /** vertical-align: middle */ };\n\n translate(labelContent as any, item.x - originalPos.x /** 从 pos.x 移动到 item.x */, item.y - originalPos.y);\n\n // adjust labelLines\n if (item.labelLine) {\n drawLabelline(item, coordinate, inRight);\n }\n });\n });\n}\n","import { each } from '@antv/util';\nimport { BBox, IGroup, IShape } from '../../../dependents';\nimport { LabelItem } from '../interface';\n\nconst MAX_TIMES = 100;\n\n/** @ignore */\ninterface Bitmap {\n [key: number]: {\n [key: number]: boolean;\n };\n}\n\n/** @ignore */\ninterface GreedyCfg {\n readonly xGap?: number;\n readonly yGap?: number;\n}\n\n/**\n * @ignore\n * Greedy 贪婪算法\n */\nclass Greedy {\n public readonly xGap: number;\n /** optimizing for text overlapping detection: use a min text height as gap */\n public readonly yGap: number;\n\n private bitmap: Bitmap = {};\n\n constructor(cfg: GreedyCfg = {}) {\n const { xGap = 1, yGap = 8 } = cfg;\n this.xGap = xGap;\n this.yGap = yGap;\n }\n\n public hasGap(bbox: BBox): boolean {\n let hasGap = true;\n const bitmap = this.bitmap;\n const minX = Math.round(bbox.minX);\n const maxX = Math.round(bbox.maxX);\n const minY = Math.round(bbox.minY);\n const maxY = Math.round(bbox.maxY);\n for (let i = minX; i <= maxX; i += 1) {\n if (!bitmap[i]) {\n bitmap[i] = {};\n continue;\n }\n if (i === minX || i === maxX) {\n for (let j = minY; j <= maxY; j++) {\n if (bitmap[i][j]) {\n hasGap = false;\n break;\n }\n }\n } else {\n if (bitmap[i][minY] || bitmap[i][maxY]) {\n hasGap = false;\n break;\n }\n }\n }\n return hasGap;\n }\n\n public fillGap(bbox: BBox): void {\n const bitmap = this.bitmap;\n const minX = Math.round(bbox.minX);\n const maxX = Math.round(bbox.maxX);\n const minY = Math.round(bbox.minY);\n const maxY = Math.round(bbox.maxY);\n // filling grid\n for (let i = minX; i <= maxX; i += 1) {\n if (!bitmap[i]) {\n bitmap[i] = {};\n }\n }\n for (let i = minX; i <= maxX; i += this.xGap) {\n for (let j = minY; j <= maxY; j += this.yGap) {\n bitmap[i][j] = true;\n }\n bitmap[i][maxY] = true;\n }\n\n // filling y edges\n if (this.yGap !== 1) {\n for (let i = minY; i <= maxY; i += 1) {\n bitmap[minX][i] = true;\n bitmap[maxX][i] = true;\n }\n }\n\n // filling x edges\n if (this.xGap !== 1) {\n for (let i = minX; i <= maxX; i += 1) {\n bitmap[i][minY] = true;\n bitmap[i][maxY] = true;\n }\n }\n }\n\n public destroy(): void {\n this.bitmap = {};\n }\n}\n\nfunction spiralFill(label: IShape, greedy: Greedy, maxTimes: number = MAX_TIMES) {\n const dt = -1;\n const { x, y } = label.attr();\n const bbox = label.getCanvasBBox();\n const maxDelta = Math.sqrt(bbox.width * bbox.width + bbox.height * bbox.height);\n let dxdy;\n let t = -dt;\n let dx = 0;\n let dy = 0;\n const f = (param: number) => {\n const nt = param * 0.1;\n return [nt * Math.cos(nt), nt * Math.sin(nt)];\n };\n\n if (greedy.hasGap(bbox)) {\n greedy.fillGap(bbox);\n return true;\n }\n let canFill = false;\n let times = 0;\n const accessedCache = {};\n while (Math.min(Math.abs(dx), Math.abs(dy)) < maxDelta && times < maxTimes) {\n dxdy = f((t += dt));\n dx = ~~dxdy[0];\n dy = ~~dxdy[1];\n if ((!dx && !dy) || accessedCache[`${dx}-${dy}`]) {\n continue;\n }\n label.attr({ x: x + dx, y: y + dy });\n if (dx + dy < 0) {\n label.attr('textAlign', 'right');\n }\n times++;\n if (greedy.hasGap(label.getCanvasBBox())) {\n greedy.fillGap(label.getCanvasBBox());\n canFill = true;\n accessedCache[`${dx}-${dy}`] = true;\n break;\n }\n }\n return canFill;\n}\n\n/*\n * 根据如下规则尝试放置label\n * 5\n * ------------------\n * | 1 | 0 |\n * 8 —————————4———————— 7\n * | 2 | 3 |\n * ——————————————————\n * 6\n */\nfunction adjustLabelPosition(label: IShape, x: number, y: number, index: number) {\n const { width, height } = label.getCanvasBBox();\n const attrs = {\n x,\n y,\n textAlign: 'center',\n };\n switch (index) {\n case 0:\n attrs.y -= height + 1;\n attrs.x += 1;\n attrs.textAlign = 'left';\n break;\n case 1:\n attrs.y -= height + 1;\n attrs.x -= 1;\n attrs.textAlign = 'right';\n break;\n case 2:\n attrs.y += height + 1;\n attrs.x -= 1;\n attrs.textAlign = 'right';\n break;\n case 3:\n attrs.y += height + 1;\n attrs.x += 1;\n attrs.textAlign = 'left';\n break;\n case 5:\n attrs.y -= height * 2 + 2;\n break;\n case 6:\n attrs.y += height * 2 + 2;\n break;\n case 7:\n attrs.x += width + 1;\n attrs.textAlign = 'left';\n break;\n case 8:\n attrs.x -= width + 1;\n attrs.textAlign = 'right';\n break;\n default:\n break;\n }\n label.attr(attrs);\n return label.getCanvasBBox();\n}\n\n/**\n * @ignore\n * label 防遮挡布局:在不改变 label 位置的情况下对相互重叠的 label 进行调整。\n * 不同于 'overlap' 类型的布局,该布局不会对 label 的位置进行偏移调整。\n * @param labels 参与布局调整的 label 数组集合\n */\nexport function fixedOverlap(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[], region: BBox) {\n const greedy = new Greedy();\n each(labels, (label: IGroup) => {\n const labelShape = label.find((shape) => shape.get('type') === 'text') as IShape;\n if (!spiralFill(labelShape, greedy)) {\n label.remove(true);\n }\n });\n greedy.destroy();\n}\n\n/**\n * @ignore\n * label 防遮挡布局:为了防止 label 之间相互覆盖同时保证尽可能多 的 label 展示,通过尝试将 label 向**四周偏移**来剔除放不下的 label\n * @param labels 参与布局调整的 label 数组集合\n */\nexport function overlap(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[], region: BBox) {\n const greedy = new Greedy();\n each(labels, (label: IGroup) => {\n const labelShape = label.find((shape) => shape.get('type') === 'text') as IShape;\n const { x, y } = labelShape.attr();\n let canFill = false;\n for (let i = 0; i <= 8; i++) {\n const bbox = adjustLabelPosition(labelShape, x, y, i);\n if (greedy.hasGap(bbox)) {\n greedy.fillGap(bbox);\n canFill = true;\n break;\n }\n }\n if (!canFill) {\n label.remove(true);\n }\n });\n\n greedy.destroy();\n}\n","import { isNumber } from '@antv/util';\nimport { Point } from '../dependents';\n\ntype Vec2 = [number, number];\n\ntype Item = {\n x: number;\n y: number;\n width: number;\n height: number;\n rotation?: number;\n visible?: boolean;\n};\n/**\n * 定义投影对象\n */\ntype Projection = { min: number; max: number };\n\nfunction dot(a, b) {\n return (a[0] || 0) * (b[0] || 0) + (a[1] || 0) * (b[1] || 0) + (a[2] || 0) * (b[2] || 0);\n}\n\n/**\n * @private\n * 1. 获取投影轴\n */\nfunction getAxes(points: Point[] /** 多边形的关键点 */): Vec2[] {\n // 目前先处理 平行矩形 的场景, 其他多边形不处理\n if (points.length > 4) {\n return [];\n }\n // 获取向量\n const vector = (start: Point, end: Point): Vec2 => {\n return [end.x - start.x, end.y - start.y];\n };\n\n // 由于 矩形的平行原理,所以只有 2 条投影轴: A -> B, B -> C\n const AB = vector(points[0], points[1]);\n const BC = vector(points[1], points[2]);\n\n return [AB, BC];\n}\n\n/**\n * @private\n * 绕指定点顺时针旋转后的点坐标\n * 默认绕原点旋转\n */\nfunction rotateAtPoint(point: Point, deg = 0, origin = { x: 0, y: 0 }): Point {\n const { x, y } = point;\n return {\n x: (x - origin.x) * Math.cos(-deg) + (y - origin.y) * Math.sin(-deg) + origin.x,\n y: (origin.x - x) * Math.sin(-deg) + (y - origin.y) * Math.cos(-deg) + origin.y,\n };\n}\n\n/**\n * @private\n * 转化为顶点坐标数组\n *\n * @param {Object} box\n */\nfunction getRectPoints(box: Item): Point[] {\n const points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n\n const rotation = box.rotation;\n if (rotation) {\n return [\n rotateAtPoint(points[0], rotation, points[0]),\n rotateAtPoint(points[1], rotation, points[0]),\n rotateAtPoint(points[2], rotation, points[0]),\n rotateAtPoint(points[3], rotation, points[0]),\n ];\n }\n\n return points;\n}\n\n/**\n * @private\n * 2. 获取多边形在投影轴上的投影\n *\n * 向量的点积的其中一个几何含义是:一个向量在平行于另一个向量方向上的投影的数值乘积。\n * 由于投影轴是单位向量(长度为1),投影的长度为 x1 * x2 + y1 * y2\n */\nfunction getProjection(points: Point[] /** 多边形的关键点 */, axis: Vec2): Projection {\n // 目前先处理矩形的场景\n if (points.length > 4) {\n return { min: 0, max: 0 };\n }\n\n const scalars = [];\n points.forEach((point) => {\n scalars.push(dot([point.x, point.y], axis));\n });\n\n return { min: Math.min(...scalars), max: Math.max(...scalars) };\n}\n\nfunction isProjectionOverlap(projection1: Projection, projection2: Projection): boolean {\n return projection1.max > projection2.min && projection1.min < projection2.max;\n}\n\nfunction isValidNumber(d: number) {\n return typeof d === 'number' && !Number.isNaN(d) && d !== Infinity && d !== -Infinity;\n}\n\nfunction isValidBox(box: Item) {\n return ['x', 'y', 'width', 'height'].every(attr => isValidNumber(box[attr]))\n}\n\n/**\n * 快速判断两个无旋转矩形是否遮挡\n */\nexport function isIntersectRect(box1: Item, box2: Item, margin: number = 0): boolean {\n return !(\n box2.x > box1.x + box1.width + margin ||\n box2.x + box2.width < box1.x - margin ||\n box2.y > box1.y + box1.height + margin ||\n box2.y + box2.height < box1.y - margin\n );\n}\n\n/**\n * detect whether two shape is intersected, useful when shape is been rotated\n * 判断两个矩形是否重叠(相交和包含, 是否旋转)\n *\n * - 原理: 分离轴定律\n */\nexport function intersect(box1: Item, box2: Item, margin: number = 0) {\n // 如果两个 box 中有一个是不合法的 box,也就是不会被渲染出来的,那么它们就不相交。\n if (!isValidBox(box1) || !isValidBox(box2)) return false;\n\n // 如果两个矩形没有旋转,使用快速判断\n if (!box1.rotation && !box2.rotation) {\n return isIntersectRect(box1, box2, margin);\n }\n\n // 分别获取 4 个关键点\n const rect1Points = getRectPoints(box1);\n const rect2Points = getRectPoints(box2);\n\n // 获取所有投影轴\n const axes = getAxes(rect1Points).concat(getAxes(rect2Points));\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const projection1 = getProjection(rect1Points, axis);\n const projection2 = getProjection(rect2Points, axis);\n\n // 判断投影轴上的投影是否存在重叠,若检测到存在间隙则立刻退出判断,消除不必要的运算。\n if (!isProjectionOverlap(projection1, projection2)) {\n return false;\n }\n }\n\n return true;\n}\n","import { isFunction } from '@antv/util';\n\nclass MyWorker {\n queue: any[] = [];\n worker: Worker;\n\n constructor(url) {\n this.worker = new Worker(url);\n this.worker.onmessage = (e: MessageEvent) => {\n this.queue.shift()?.resolve(e);\n };\n this.worker.onmessageerror = (e: MessageEvent) => {\n console.warn('[AntV G2] Web worker is not available');\n this.queue.shift()?.reject(e);\n };\n }\n\n post(params, onError?: () => any): Promise {\n return new Promise((resolve, reject) => {\n this.queue.push({ resolve, reject });\n try {\n this.worker.postMessage(params);\n } catch (e) {\n console.warn('[AntV G2] Web worker is not available');\n isFunction(onError) && onError();\n }\n });\n }\n\n destroy() {\n this.worker.terminate();\n }\n}\n\nexport function createWorker(f: any) {\n if (typeof window === 'undefined') return;\n\n let blob;\n try {\n blob = new Blob([f.toString()], { type: 'application/javascript' });\n } catch (e) {\n // @ts-ignore\n blob = new window.BlobBuilder();\n blob.append(f.toString());\n blob = blob.getBlob();\n }\n\n return new MyWorker(URL.createObjectURL(blob));\n}\n","const onmessage = function (e) {\n type Item = {\n x: number;\n y: number;\n width: number;\n height: number;\n rotation?: number;\n visible?: boolean;\n };\n\n // Copy from src/util/collision-detect.ts\n function generateUtils() {\n type Vec2 = [number, number];\n\n type Point = { x: number; y: number };\n\n /**\n * 定义投影对象\n */\n type Projection = { min: number; max: number };\n\n function dot(a, b) {\n return (a[0] || 0) * (b[0] || 0) + (a[1] || 0) * (b[1] || 0) + (a[2] || 0) * (b[2] || 0);\n }\n /**\n * 1. 获取投影轴\n */\n function getAxes(points: Point[] /** 多边形的关键点 */): Vec2[] {\n // 目前先处理 平行矩形 的场景, 其他多边形不处理\n if (points.length > 4) {\n return [];\n }\n // 获取向量\n const vector = (start: Point, end: Point): Vec2 => {\n return [end.x - start.x, end.y - start.y];\n };\n\n // 由于 矩形的平行原理,所以只有 2 条投影轴: A -> B, B -> C\n const AB = vector(points[0], points[1]);\n const BC = vector(points[1], points[2]);\n\n return [AB, BC];\n }\n\n /**\n * 绕指定点顺时针旋转后的点坐标\n * 默认绕原点旋转\n */\n function rotateAtPoint(point: Point, deg = 0, origin = { x: 0, y: 0 }): Point {\n const { x, y } = point;\n return {\n x: (x - origin.x) * Math.cos(-deg) + (y - origin.y) * Math.sin(-deg) + origin.x,\n y: (origin.x - x) * Math.sin(-deg) + (y - origin.y) * Math.cos(-deg) + origin.y,\n };\n }\n\n /**\n * @private\n * 转化为顶点坐标数组\n *\n * @param {Object} box\n */\n function getRectPoints(box: Item): Point[] {\n const points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n\n const rotation = box.rotation;\n if (rotation) {\n return [\n rotateAtPoint(points[0], rotation, points[0]),\n rotateAtPoint(points[1], rotation, points[0]),\n rotateAtPoint(points[2], rotation, points[0]),\n rotateAtPoint(points[3], rotation, points[0]),\n ];\n }\n\n return points;\n }\n\n /**\n * 2. 获取多边形在投影轴上的投影\n *\n * 向量的点积的其中一个几何含义是:一个向量在平行于另一个向量方向上的投影的数值乘积。\n * 由于投影轴是单位向量(长度为1),投影的长度为 x1 * x2 + y1 * y2\n */\n function getProjection(points: Point[] /** 多边形的关键点 */, axis: Vec2): Projection {\n // 目前先处理矩形的场景\n if (points.length > 4) {\n return { min: 0, max: 0 };\n }\n\n const scalars = [];\n points.forEach((point) => {\n scalars.push(dot([point.x, point.y], axis));\n });\n\n return { min: Math.min.apply(null, scalars), max: Math.max.apply(null, scalars) };\n }\n\n function isProjectionOverlap(projection1: Projection, projection2: Projection): boolean {\n return projection1.max > projection2.min && projection1.min < projection2.max;\n }\n\n function isValidNumber(d: number) {\n return typeof d === 'number' && !Number.isNaN(d) && d !== Infinity && d !== -Infinity;\n }\n\n function isValidBox(box: Item) {\n return ['x', 'y', 'width', 'height'].every(attr => isValidNumber(box[attr]))\n }\n\n function isIntersectRect(box1: Item, box2: Item, margin: number = 0): boolean {\n return !(\n box2.x > box1.x + box1.width + margin ||\n box2.x + box2.width < box1.x - margin ||\n box2.y > box1.y + box1.height + margin ||\n box2.y + box2.height < box1.y - margin\n );\n }\n function intersect(box1: Item, box2: Item, margin: number = 0) {\n if (!isValidBox(box1) || !isValidBox(box2)) return false;\n\n // Quick detect, if rotation is null or zero.\n if (!box1.rotation && !box2.rotation) {\n return isIntersectRect(box1, box2, margin);\n }\n\n // 分别获取 4 个关键点\n const rect1Points = getRectPoints(box1);\n const rect2Points = getRectPoints(box2);\n\n // 获取所有投影轴\n const axes = getAxes(rect1Points).concat(getAxes(rect2Points));\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const projection1 = getProjection(rect1Points, axis);\n const projection2 = getProjection(rect2Points, axis);\n\n if (!isProjectionOverlap(projection1, projection2)) return false;\n }\n\n return true;\n }\n return { intersect }\n }\n const { intersect } = generateUtils();\n\n // Label layouts.\n function hideOverlap(items: Item[]) {\n const boxes = items.slice();\n for (let i = 0; i < boxes.length; i++) {\n const box1 = boxes[i];\n if (box1.visible) {\n for (let j = i + 1; j < boxes.length; j++) {\n const box2 = boxes[j];\n if (box1 !== box2 && box2.visible) {\n if (intersect(box1, box2)) {\n box2.visible = false;\n }\n }\n }\n }\n }\n return boxes;\n }\n\n const methods = {\n 'hide-overlap': hideOverlap,\n }\n\n // Main\n try {\n const eventData = JSON.parse(e.data);\n if (!eventData || !eventData.type || !methods[eventData.type]) return;\n\n const { type, items } = eventData;\n const result = methods[type](items);\n self.postMessage(result);\n } catch (e) {\n throw e;\n }\n}\n\nconst code = `\n self.onmessage = ${onmessage.toString()}\n`\nexport { code };\n","import { get, each } from '@antv/util';\nimport { BBox, IGroup, IShape } from '../../../dependents';\nimport { intersect } from '../../../util/collision-detect';\nimport { LabelItem } from '../interface';\nimport { getLabelBackgroundInfo } from '../util';\nimport { createWorker } from '../util/createWorker';\nimport { code as layoutCode } from './worker/hide-overlap';\n\ntype Item = {\n x: number;\n y: number;\n width: number;\n height: number;\n rotation?: number;\n visible?: boolean;\n};\n\nconst layout = (items: Item[]): Item[] => {\n const boxes = items.slice();\n for (let i = 0; i < boxes.length; i++) {\n const box1 = boxes[i];\n if (box1.visible) {\n for (let j = i + 1; j < boxes.length; j++) {\n const box2 = boxes[j];\n if (box1 !== box2 && box2.visible) {\n if (intersect(box1, box2)) {\n box2.visible = false;\n }\n }\n }\n }\n }\n return boxes;\n};\n\nconst cache: Map = new Map();\nconst worker = createWorker(layoutCode);\n\n/**\n * label 防遮挡布局:在不改变 label 位置的情况下对相互重叠的 label 进行隐藏(非移除)\n * 不同于 'overlap' 类型的布局,该布局不会对 label 的位置进行偏移调整。\n * @param labels 参与布局调整的 label 数组集合\n */\nexport async function hideOverlap(\n labelItems: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox\n) {\n const boxes = labels.map((d, idx) => ({\n ...getLabelBackgroundInfo(d, labelItems[idx], get(labelItems[idx], 'background.padding')),\n visible: true,\n }));\n const memoKey = JSON.stringify(boxes);\n const cb = (items: Item[]) => {\n cache.set(memoKey, items);\n each(items, ({ visible }, idx) => {\n const labelShape = labels[idx];\n if (visible) {\n labelShape?.show();\n } else {\n labelShape?.hide();\n }\n });\n return items;\n };\n if (cache.get(memoKey)) {\n cb(cache.get(memoKey));\n } else if (worker) {\n // Do layout in worker.\n try {\n const params = JSON.stringify({ type: 'hide-overlap', items: boxes });\n const res = await worker.post(params, () => cb(layout(boxes)));\n cb(Array.isArray(res.data) ? res.data : []);\n } catch (e) {\n console.error(e);\n cb(layout(boxes));\n }\n } else {\n // Normal layout in main thread.\n cb(layout(boxes));\n }\n}\n","import colorUtil from '@antv/color-util';\n\n// 内置的一些特殊设置\nconst preset = {\n '#5B8FF9': true,\n};\n\n// 根据YIQ亮度判断指定颜色取反色是不是白色\n// http://24ways.org/2010/calculating-color-contrast\n// http://www.w3.org/TR/AERT#color-contrast\nexport const isContrastColorWhite = (color: string): boolean => {\n const rgb = colorUtil.toRGB(color).toUpperCase();\n if (preset[rgb]) {\n return preset[rgb];\n }\n\n const [r, g, b] = colorUtil.rgb2arr(rgb);\n const isDark = (r * 299 + g * 587 + b * 114) / 1000 < 128;\n\n return isDark;\n};\n","let ctx: CanvasRenderingContext2D;\n\n/**\n * 获取 canvas context\n */\nexport function getCanvasContext() {\n if (!ctx) {\n ctx = document.createElement('canvas').getContext('2d');\n }\n\n return ctx;\n}\n","import { IElement, IGroup, IShape } from '../../../../dependents';\nimport { BBox } from '../../../../util/bbox';\nimport Geometry from '../../../base';\nimport Element from '../../../element';\nimport { LabelItem } from '../../interface';\nimport { findLabelTextShape } from '../../util';\n\nfunction shouldInShapeSingle(geometry: Geometry, label: IGroup, shape: IElement): boolean {\n const coordinate = geometry.coordinate;\n const textShape = findLabelTextShape(label);\n const textBBox = BBox.fromObject(textShape.getCanvasBBox());\n const shapeBBox = BBox.fromObject(shape.getBBox());\n\n return coordinate.isTransposed ? shapeBBox.height >= textBBox.height : shapeBBox.width >= textBBox.width;\n}\n\nfunction shouldInShape(geometry: Geometry, labels: IGroup[], shapes: IShape[] | IGroup[]): boolean {\n const isStack = !!geometry.getAdjust('stack');\n\n return (\n isStack ||\n labels.every((label: IGroup, index: number) => {\n const shape = shapes[index];\n return shouldInShapeSingle(geometry, label, shape);\n })\n );\n}\n\nfunction moveInShape(geometry: Geometry, label: IGroup, shape: IElement): void {\n const coordinate = geometry.coordinate;\n const shapeBBox = BBox.fromObject(shape.getBBox());\n const textShape = findLabelTextShape(label);\n\n if (coordinate.isTransposed) {\n // 水平方向:条形图系列\n textShape.attr({\n x: shapeBBox.minX + shapeBBox.width / 2,\n textAlign: 'center',\n });\n } else {\n // 垂直方向:柱形图系列\n textShape.attr({\n y: shapeBBox.minY + shapeBBox.height / 2,\n textBaseline: 'middle',\n });\n }\n}\n\n/**\n * 适用于 interval geometry 的数据标签位置自动调整布局方法\n * @param items\n * @param labels\n * @param shapes\n */\nexport function intervalAdjustPosition(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[]) {\n if (shapes.length === 0) {\n return;\n }\n const element: Element = shapes[0]?.get('element');\n const geometry: Geometry = element?.geometry;\n if (!geometry || geometry.type !== 'interval') {\n return;\n }\n\n const inShape = shouldInShape(geometry, labels, shapes);\n if (inShape) {\n shapes.forEach((shape: IShape | IGroup, index: number) => {\n const label = labels[index];\n moveInShape(geometry, label, shape);\n });\n }\n}\n","import { groupBy, keys, map } from '@antv/util';\nimport { IElement, IGroup, IShape, BBox } from '../../../../dependents';\nimport Geometry from '../../../base';\nimport Element from '../../../element';\nimport { LabelItem } from '../../interface';\nimport { findLabelTextShape } from '../../util';\n\n/**\n * point-adjust-position layout 的配置类型\n */\nexport interface PointAdjustPositionLayoutCfg {\n offset?: number;\n}\n\n/**\n * 对同一组(相同 xField )的 Label 进行排序:第一个、最后一个、其他...\n * @param geometry\n * @param labels\n */\nfunction sortLabels(geometry: Geometry, labels: IGroup[]) {\n const yField = geometry.getXYFields()[1];\n const result: IGroup[] = [];\n const sortedLabels = labels.sort((left, right) => left.get('data')[yField] - left.get('data')[yField]);\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.shift());\n }\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.pop());\n }\n result.push(...sortedLabels);\n\n return result;\n}\n\nfunction hasSome(dones: IGroup[], current: IGroup, compare: (left: IGroup, right: IGroup) => boolean): boolean {\n return dones.some((done) => compare(done, current));\n}\n\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\nfunction getOverlapArea(a: BBox, b: BBox, margin = 0) {\n const xOverlap = Math.max(\n 0,\n Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin)\n );\n const yOverlap = Math.max(\n 0,\n Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin)\n );\n\n return xOverlap * yOverlap;\n}\n\n/**\n * 判断新添加的 Label 是否和已存在的发生重叠\n * @param dones\n * @param current\n */\nfunction checkShapeOverlap(dones: IGroup[], current: IGroup): boolean {\n return hasSome(dones, current, (left, right) => {\n const leftText = findLabelTextShape(left);\n const rightText = findLabelTextShape(right);\n\n return getOverlapArea(leftText.getCanvasBBox(), rightText.getCanvasBBox(), 2) > 0;\n });\n}\n/**\n * 适用于 point geometry 的数据标签位置自动调整布局方法\n * @param items\n * @param labels\n * @param shapes\n * @param region\n * @param cfg\n */\nexport function pointAdjustPosition(\n items: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox,\n cfg: PointAdjustPositionLayoutCfg\n): void {\n if (shapes.length === 0) {\n return;\n }\n\n const element: Element = shapes[0]?.get('element');\n const geometry: Geometry = element?.geometry;\n if (!geometry || geometry.type !== 'point') {\n return;\n }\n const [xField, yField] = geometry.getXYFields();\n const groupedLabels = groupBy(labels, (label) => label.get('data')[xField]);\n const dones: IGroup[] = [];\n const offset = (cfg && cfg.offset) || items[0]?.offset || 12;\n\n map(keys(groupedLabels).reverse(), (xValue) => {\n const sortedCollections = sortLabels(geometry, groupedLabels[xValue]);\n while (sortedCollections.length) {\n const current = sortedCollections.shift();\n const textShape = findLabelTextShape(current);\n if (\n hasSome(\n dones,\n current,\n (left, right) =>\n left.get('data')[xField] === right.get('data')[xField] &&\n left.get('data')[yField] === right.get('data')[yField]\n )\n ) {\n // 重复位置,直接隐藏\n textShape.set('visible', false);\n continue;\n }\n const upFail = checkShapeOverlap(dones, current);\n let downFail: boolean = false;\n if (upFail) {\n textShape.attr('y', textShape.attr('y') + 2 * offset);\n downFail = checkShapeOverlap(dones, current);\n }\n if (downFail) {\n textShape.set('visible', false);\n continue;\n }\n dones.push(current);\n }\n });\n}\n","import { groupBy, keys, map } from '@antv/util';\nimport { IGroup, IShape, BBox } from '../../../../dependents';\nimport Geometry from '../../../base';\nimport Element from '../../../element';\nimport { LabelItem } from '../../interface';\nimport { findLabelTextShape } from '../../util';\n\n/**\n * point-adjust-position layout 的配置类型\n */\nexport interface PointAdjustPositionLayoutCfg {\n offset?: number;\n}\n\n/**\n * 对同一组(相同 xField )的 Label 进行排序:第一个、最后一个、其他...\n * @param geometry\n * @param labels\n */\nfunction sortLabels(geometry: Geometry, labels: IGroup[]) {\n const yField = geometry.getXYFields()[1];\n const result: IGroup[] = [];\n const sortedLabels = labels.sort((left, right) => left.get('data')[yField] - left.get('data')[yField]);\n\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.shift());\n }\n if (sortedLabels.length > 0) {\n result.push(sortedLabels.pop());\n }\n result.push(...sortedLabels);\n\n return result;\n}\n\nfunction hasSome(dones: IGroup[], current: IGroup, compare: (left: IGroup, right: IGroup) => boolean): boolean {\n return dones.some((done) => compare(done, current));\n}\n\n/**\n * 计算两个矩形之间的堆叠区域面积\n */\nfunction getOverlapArea(a: BBox, b: BBox, margin = 0) {\n const xOverlap = Math.max(\n 0,\n Math.min(a.x + a.width + margin, b.x + b.width + margin) - Math.max(a.x - margin, b.x - margin)\n );\n const yOverlap = Math.max(\n 0,\n Math.min(a.y + a.height + margin, b.y + b.height + margin) - Math.max(a.y - margin, b.y - margin)\n );\n\n return xOverlap * yOverlap;\n}\n\n/**\n * 判断新添加的 Label 是否和已存在的发生重叠\n * @param dones\n * @param current\n */\nfunction checkShapeOverlap(dones: IGroup[], current: IGroup): boolean {\n return hasSome(dones, current, (left, right) => {\n const leftText = findLabelTextShape(left);\n const rightText = findLabelTextShape(right);\n\n return getOverlapArea(leftText.getCanvasBBox(), rightText.getCanvasBBox(), 2) > 0;\n });\n}\n/**\n * 适用于 point geometry 的数据标签位置自动调整布局方法\n * @param items\n * @param labels\n * @param shapes\n * @param region\n * @param cfg\n */\nexport function pathAdjustPosition(\n items: LabelItem[],\n labels: IGroup[],\n shapes: IShape[] | IGroup[],\n region: BBox,\n cfg: PointAdjustPositionLayoutCfg\n): void {\n if (shapes.length === 0) {\n return;\n }\n\n const element: Element = shapes[0]?.get('element');\n const geometry: Geometry = element?.geometry;\n if (!geometry || ['path', 'line', 'area'].indexOf(geometry.type) < 0) {\n return;\n }\n const [xField, yField] = geometry.getXYFields();\n const groupedLabels = groupBy(labels, (label) => label.get('data')[xField]);\n const dones: IGroup[] = [];\n const offset = (cfg && cfg.offset) || items[0]?.offset || 12;\n\n map(keys(groupedLabels).reverse(), (xValue) => {\n const sortedCollections = sortLabels(geometry, groupedLabels[xValue]);\n while (sortedCollections.length) {\n const current = sortedCollections.shift();\n const textShape = findLabelTextShape(current);\n if (\n hasSome(\n dones,\n current,\n (left, right) =>\n left.get('data')[xField] === right.get('data')[xField] &&\n left.get('data')[yField] === right.get('data')[yField]\n )\n ) {\n // 重复位置,直接隐藏\n textShape.set('visible', false);\n continue;\n }\n const upFail = checkShapeOverlap(dones, current);\n let downFail: boolean = false;\n if (upFail) {\n textShape.attr('y', textShape.attr('y') + 2 * offset);\n downFail = checkShapeOverlap(dones, current);\n }\n if (downFail) {\n textShape.set('visible', false);\n continue;\n }\n dones.push(current);\n }\n });\n}\n","import { isString, memoize, values, toString } from '@antv/util';\nimport * as CSS from 'csstype';\nimport { getCanvasContext } from './context';\n\ntype FontFace = CSS.Properties;\n\ntype Font = Pick & {\n fontSize?: number;\n};\n\n/**\n * 计算文本在画布中的宽度\n */\nexport const measureTextWidth = memoize(\n (text: any, font: Font = {}): number => {\n const { fontSize, fontFamily, fontWeight, fontStyle, fontVariant } = font;\n const ctx = getCanvasContext();\n ctx!.font = [fontStyle, fontVariant, fontWeight, `${fontSize}px`, fontFamily].join(' ');\n return ctx!.measureText(isString(text) ? text : '').width;\n },\n (text: any, font: Font = {}) => [text, ...values(font)].join('')\n);\n\n/**\n * 获取文本的 ... 文本。\n * 算法(减少每次 measureText 的长度,measureText 的性能跟字符串时间相关):\n * 1. 先通过 STEP 逐步计算,找到最后一个小于 maxWidth 的字符串\n * 2. 然后对最后这个字符串二分计算\n * @param text 需要计算的文本, 由于历史原因 除了支持string,还支持空值,number和数组等\n * @param maxWidth\n * @param font\n */\nexport const getEllipsisText = (text: any, maxWidth: number, font?: Font) => {\n const STEP = 16; // 每次 16,调参工程师\n const DOT_WIDTH = measureTextWidth('...', font);\n\n let leftText;\n\n if (!isString(text)) {\n leftText = toString(text);\n } else {\n leftText = text;\n }\n\n let leftWidth = maxWidth;\n\n const r = []; // 最终的分段字符串\n let currentText;\n let currentWidth;\n\n if (measureTextWidth(text, font) <= maxWidth) {\n return text;\n }\n\n // 首先通过 step 计算,找出最大的未超出长度的\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, STEP);\n\n // 计算宽度\n currentWidth = measureTextWidth(currentText, font);\n\n // 超出剩余宽度,则停止\n if (currentWidth + DOT_WIDTH > leftWidth) {\n if (currentWidth > leftWidth) {\n break;\n }\n }\n\n r.push(currentText);\n\n // 没有超出,则计算剩余宽度\n leftWidth -= currentWidth;\n leftText = leftText.substr(STEP);\n\n // 字符串整体没有超出\n if (!leftText) {\n return r.join('');\n }\n }\n\n // 最下的最后一个 STEP,使用 1 递增(用二分效果更高)\n while (true) {\n // 更新字符串\n currentText = leftText.substr(0, 1);\n\n // 计算宽度\n currentWidth = measureTextWidth(currentText, font);\n\n // 超出剩余宽度,则停止\n if (currentWidth + DOT_WIDTH > leftWidth) {\n break;\n }\n\n r.push(currentText);\n // 没有超出,则计算剩余宽度\n leftWidth -= currentWidth;\n leftText = leftText.substr(1);\n\n if (!leftText) {\n return r.join('');\n }\n }\n\n return `${r.join('')}...`;\n};\n","import { ext } from '@antv/matrix-util';\nimport { Coordinate, IGroup, IShape } from '../../dependents';\nimport { GAnimateCfg, Point } from '../../interface';\n\n/**\n * @ignore\n * 对图形元素进行矩阵变换,同时返回变换前的图形矩阵\n * @param shape 进行矩阵变换的图形\n * @param vector 矩阵变换的中心点\n * @param direct 矩阵变换的类型\n */\nexport function transformShape(shape: IShape | IGroup, vector: [number, number], direct: string): number[] {\n let scaledMatrix;\n\n const [x, y] = vector;\n shape.applyToMatrix([x, y, 1]);\n if (direct === 'x') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 1],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 1],\n ['t', x, y],\n ]);\n } else if (direct === 'y') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 1, 0.01],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 1, 100],\n ['t', x, y],\n ]);\n } else if (direct === 'xy') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 0.01],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 100],\n ['t', x, y],\n ]);\n }\n return scaledMatrix;\n}\n\n/**\n * 对图形元素进行剪切动画\n * @param element 进行动画的图形元素\n * @param animateCfg 动画配置\n * @param coordinate 当前坐标系\n * @param yMinPoint y 轴的最小值对应的图形坐标点\n * @param type 剪切动画的类型\n */\nexport function doScaleAnimate(\n element: IGroup | IShape,\n animateCfg: GAnimateCfg,\n coordinate: Coordinate,\n yMinPoint: Point,\n type: string\n) {\n const { start, end } = coordinate;\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n let x: number;\n let y: number;\n\n if (type === 'y') {\n x = start.x + width / 2;\n y = yMinPoint.y < start.y ? yMinPoint.y : start.y;\n } else if (type === 'x') {\n x = yMinPoint.x > start.x ? yMinPoint.x : start.x;\n y = start.y + height / 2;\n } else if (type === 'xy') {\n if (coordinate.isPolar) {\n x = coordinate.getCenter().x;\n y = coordinate.getCenter().y;\n } else {\n x = (start.x + end.x) / 2;\n y = (start.y + end.y) / 2;\n }\n }\n\n const endMatrix = transformShape(element, [x, y], type);\n element.animate(\n {\n matrix: endMatrix,\n },\n animateCfg\n );\n}\n","import { getArcParams } from '@antv/g-canvas';\nimport { isNumberEqual, isEqual, isFunction } from '@antv/util';\n\nimport { IShape, PathCommand } from '../../dependents';\nimport { GAnimateCfg } from '../../interface';\nimport { AnimateExtraCfg } from '../interface';\n\nimport { getArcPath, getSectorPath } from '../../util/graphics';\n\nfunction getAngle(startPoint: number[], arcPath: PathCommand) {\n let { startAngle, endAngle } = getArcParams(startPoint, arcPath);\n\n if (!isNumberEqual(startAngle, -Math.PI * 0.5) && startAngle < -Math.PI * 0.5) {\n startAngle += Math.PI * 2;\n }\n if (!isNumberEqual(endAngle, -Math.PI * 0.5) && endAngle < -Math.PI * 0.5) {\n endAngle += Math.PI * 2;\n }\n\n if (arcPath[5] === 0) {\n // 逆时针,需要将 startAngle 和 endAngle 转置,因为 G2 极坐标系为顺时针方向\n [startAngle, endAngle] = [endAngle, startAngle];\n }\n\n if (isNumberEqual(startAngle, Math.PI * 1.5)) {\n startAngle = Math.PI * -0.5;\n }\n\n // 当 startAngle, endAngle 接近相等时,不进行 endAngle = Math.PI * 1.5 防止变化从整个圆开始\n if (isNumberEqual(endAngle, Math.PI * -0.5) && !isNumberEqual(startAngle, endAngle)) {\n endAngle = Math.PI * 1.5;\n }\n\n return {\n startAngle,\n endAngle,\n };\n}\n\nfunction getArcStartPoint(path: PathCommand) {\n let startPoint;\n if (path[0] === 'M' || path[0] === 'L') {\n startPoint = [path[1], path[2]];\n } else if (path[0] === 'a' || path[0] === 'A' || path[0] === 'C') {\n startPoint = [path[path.length - 2], path[path.length - 1]];\n }\n\n return startPoint;\n}\n\n/**\n * path 存在以下情况\n * 1. 饼图不为整圆的 path,命令为 M, L, A, L, Z\n * 2. 饼图为整圆的 path,命令为 M, M, A, A, M, Z\n * 3. 环图不为整圆的 path,命令为 M, A, L, A, L, Z\n * 4. 环图为整圆的 path,命令为 M, A, A, M, A, A, M, Z\n * 5. radial-line, 不为整圆时的 path, 命令为 M, A, A, Z\n * 6. radial-line, 为整圆时的 path,命令为 M, A, A, A, A, Z\n * @param path theta 坐标系下圆弧的 path 命令\n */\nexport function getArcInfo(path: PathCommand[]) {\n let startAngle;\n let endAngle;\n\n const arcPaths = path.filter((command) => {\n return command[0] === 'A' || command[0] === 'a';\n });\n\n if (arcPaths.length === 0) {\n return {\n startAngle: 0,\n endAngle: 0,\n radius: 0,\n innerRadius: 0,\n };\n }\n\n const firstArcPathCommand = arcPaths[0];\n const lastArcPathCommand = arcPaths.length > 1 ? arcPaths[1] : arcPaths[0];\n const firstIndex = path.indexOf(firstArcPathCommand);\n const lastIndex = path.indexOf(lastArcPathCommand);\n const firstStartPoint = getArcStartPoint(path[firstIndex - 1]);\n const lastStartPoint = getArcStartPoint(path[lastIndex - 1]);\n\n const { startAngle: firstStartAngle, endAngle: firstEndAngle } = getAngle(firstStartPoint, firstArcPathCommand);\n const { startAngle: lastStartAngle, endAngle: lastEndAngle } = getAngle(lastStartPoint, lastArcPathCommand);\n\n if (isNumberEqual(firstStartAngle, lastStartAngle) && isNumberEqual(firstEndAngle, lastEndAngle)) {\n startAngle = firstStartAngle;\n endAngle = firstEndAngle;\n } else {\n startAngle = Math.min(firstStartAngle, lastStartAngle);\n endAngle = Math.max(firstEndAngle, lastEndAngle);\n }\n\n let radius = firstArcPathCommand[1];\n let innerRadius = arcPaths[arcPaths.length - 1][1];\n if (radius < innerRadius) {\n [radius, innerRadius] = [innerRadius, radius];\n } else if (radius === innerRadius) {\n innerRadius = 0;\n }\n\n return {\n startAngle,\n endAngle,\n radius,\n innerRadius,\n };\n}\n\n/**\n * @ignore\n * 饼图更新动画\n * @param shape 文本图形\n * @param animateCfg\n * @param cfg\n */\nexport function sectorPathUpdate(shape: IShape, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) {\n const { toAttrs, coordinate } = cfg;\n const path = (toAttrs as { path: PathCommand[] }).path || [];\n const pathCommands = path.map((command) => command[0]);\n\n if (path.length < 1) return;\n\n const { startAngle: curStartAngle, endAngle: curEndAngle, radius, innerRadius } = getArcInfo(path);\n const { startAngle: preStartAngle, endAngle: preEndAngle } = getArcInfo(shape.attr('path'));\n\n const center = coordinate.getCenter();\n const diffStartAngle = curStartAngle - preStartAngle;\n const diffEndAngle = curEndAngle - preEndAngle;\n // 没有 diff 时直接返回最终 attrs,不需要额外动画\n if (diffStartAngle === 0 && diffEndAngle === 0) {\n shape.attr('path', path);\n return;\n }\n\n shape.animate(\n (ratio) => {\n const onFrameStartAngle = preStartAngle + ratio * diffStartAngle;\n const onFrameEndAngle = preEndAngle + ratio * diffEndAngle;\n return {\n ...toAttrs,\n path:\n // hack, 兼容 /examples/bar/basic/demo/radial-line.ts 动画\n isEqual(pathCommands, ['M', 'A', 'A', 'Z'])\n ? getArcPath(center.x, center.y, radius, onFrameStartAngle, onFrameEndAngle)\n : getSectorPath(center.x, center.y, radius, onFrameStartAngle, onFrameEndAngle, innerRadius),\n };\n },\n {\n ...animateCfg,\n callback: () => {\n // 将 path 保持原始态,否则会影响 setState() 的动画\n shape.attr('path', path);\n isFunction(animateCfg.callback) && animateCfg.callback();\n },\n }\n );\n}\n","import { ext } from '@antv/matrix-util';\nimport { each, isFunction } from '@antv/util';\nimport { IGroup, IShape } from '../../dependents';\nimport { GAnimateCfg } from '../../interface';\nimport { AnimateExtraCfg } from '../interface';\n\nfunction doShapeZoom(shape: IShape | IGroup, animateCfg: GAnimateCfg, type: 'zoomIn' | 'zoomOut') {\n if (shape.isGroup()) {\n each((shape as IGroup).getChildren(), (child) => {\n doShapeZoom(child, animateCfg, type);\n });\n } else {\n const bbox = shape.getBBox();\n const x = (bbox.minX + bbox.maxX) / 2;\n const y = (bbox.minY + bbox.maxY) / 2;\n shape.applyToMatrix([x, y, 1]);\n\n if (type === 'zoomIn') {\n // 放大\n const matrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 0.01],\n ['t', x, y],\n ]);\n shape.setMatrix(matrix);\n shape.animate(\n {\n matrix: ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 100],\n ['t', x, y],\n ]),\n },\n animateCfg\n );\n } else {\n shape.animate(\n {\n matrix: ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 0.01],\n ['t', x, y],\n ]),\n },\n {\n ...animateCfg,\n callback: () => {\n shape.remove(true);\n isFunction(animateCfg.callback) && animateCfg.callback();\n },\n }\n );\n }\n }\n}\n\n/**\n * @ignore\n * 单个 shape 动画\n * shape 以自身中心点逐渐放大的进入动画\n * @param shape 参与动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\nexport function zoomIn(shape: IShape | IGroup, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) {\n doShapeZoom(shape, animateCfg, 'zoomIn');\n}\n\n/**\n * @ignore\n * 单个 shape 动画\n * 消失动画,shape 以自身为中心点的逐渐缩小\n * @param shape 参与动画的图形元素\n * @param animateCfg 动画配置\n * @param cfg 额外信息\n */\nexport function zoomOut(shape: IShape | IGroup, animateCfg: GAnimateCfg, cfg: AnimateExtraCfg) {\n doShapeZoom(shape, animateCfg, 'zoomOut');\n}\n","import { DIRECTION } from '../constant';\nimport { Point } from '../dependents';\nimport { FacetTitle } from '../interface';\n\n/**\n * @ignore\n * 获取 facet title 的最佳默认配置,防止\n */\nexport function getFactTitleConfig(direction: DIRECTION): FacetTitle {\n if ([DIRECTION.TOP, DIRECTION.BOTTOM].includes(direction)) {\n return {\n offsetX: 0,\n offsetY: direction === DIRECTION.TOP ? -8 : 8,\n style: {\n textAlign: 'center',\n textBaseline: direction === DIRECTION.TOP ? 'bottom' : 'top',\n },\n };\n }\n\n if ([DIRECTION.LEFT, DIRECTION.RIGHT].includes(direction)) {\n return {\n offsetX: direction === DIRECTION.LEFT ? -8 : 8,\n offsetY: 0,\n style: {\n textAlign: direction === DIRECTION.LEFT ? 'right' : 'left',\n textBaseline: 'middle',\n rotate: Math.PI / 2, // 文本阅读习惯从上往下\n },\n };\n }\n\n return {};\n}\n\n/**\n * @ignore\n * 根据角度,获取 ○ 上的点\n * @param center\n * @param r\n * @param angle\n */\nexport function getAnglePoint(center: Point, r: number, angle: number): Point {\n return {\n x: center.x + r * Math.cos(angle),\n y: center.y + r * Math.sin(angle),\n };\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { AxisCfg, CircleCfg, CircleData, Datum } from '../interface';\n\nimport View from '../chart/view';\nimport { DIRECTION } from '../constant';\nimport { getAnglePoint, getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class Circle extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'circle',\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n /**\n * 根据总数和当前索引,计算分面的 region\n * @param count\n * @param index\n */\n protected getRegion(count: number, index: number) {\n const r = 1 / 2; // 画布半径\n // 画布圆心\n const center = { x: 0.5, y: 0.5 };\n // 每隔分面间隔的弧度\n const avgAngle = (Math.PI * 2) / count;\n\n // 当前分面所在的弧度\n const angle = (-1 * Math.PI) / 2 + avgAngle * index;\n // TODO 没看懂\n const facetR = r / (1 + 1 / Math.sin(avgAngle / 2));\n // 分面的中心点\n const middle = getAnglePoint(center, r - facetR, angle);\n const startAngle = (Math.PI * 5) / 4; // 右上角\n const endAngle = (Math.PI * 1) / 4; // 左下角\n\n return {\n start: getAnglePoint(middle, facetR, startAngle),\n end: getAnglePoint(middle, facetR, endAngle),\n };\n }\n\n protected afterEachView(view: View, facet: CircleData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: CircleData) {}\n\n protected generateFacets(data: Datum[]): CircleData[] {\n const { fields, type } = this.cfg;\n const [field] = fields;\n if (!field) {\n throw new Error('No `fields` specified!');\n }\n\n const values = this.getFieldValues(data, field);\n const count = values.length;\n\n const rst = [];\n values.forEach((value: any, index: number) => {\n const conditions = [{ field, value, values }];\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: CircleData = {\n type,\n data: facetData,\n region: this.getRegion(count, index),\n\n columnValue: value,\n columnField: field,\n columnIndex: index,\n columnValuesLength: count,\n\n rowValue: null,\n rowField: null,\n rowIndex: 0,\n rowValuesLength: 1,\n };\n rst.push(facet);\n });\n return rst;\n }\n\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: CircleData): object {\n // 不做任何处理\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: CircleData): object {\n // 不做任何处理\n return option;\n }\n\n /**\n * facet title\n */\n private renderTitle() {\n each(this.facets, (facet: CircleData) => {\n const { columnValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n });\n }\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, ListCfg, ListData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class List extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'list',\n cols: null, // 默认显示一列\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n protected afterEachView(view: View, facet: ListData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: ListData) {}\n\n protected generateFacets(data: Datum[]): ListData[] {\n const { fields } = this.cfg;\n let { cols } = this.cfg;\n\n const [columnField] = fields;\n if (!columnField) {\n throw new Error('No `fields` specified!');\n }\n\n const colValues = this.getFieldValues(data, columnField);\n\n const count = colValues.length;\n cols = cols || count; // 每行有几列数据\n\n // 总共有几行\n const rows = this.getPageCount(count, cols);\n const rst = [];\n\n colValues.forEach((val, index) => {\n // 当前 index 在那个行列\n const { row, col } = this.getRowCol(index, cols);\n\n const conditions = [{ field: columnField, value: val, values: colValues }];\n\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: ListData = {\n type: this.cfg.type,\n data: facetData,\n region: this.getRegion(rows, cols, col, row),\n\n columnValue: val,\n rowValue: val,\n columnField,\n rowField: null,\n columnIndex: col,\n rowIndex: row,\n columnValuesLength: cols,\n rowValuesLength: rows,\n\n total: count,\n };\n\n rst.push(facet);\n });\n\n return rst;\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: ListData): object {\n // 当是最后一行或者下面没有 view 时文本不显示\n if (\n facet.rowIndex !== facet.rowValuesLength - 1 &&\n facet.columnValuesLength * facet.rowIndex + facet.columnIndex + 1 + facet.columnValuesLength <= facet.total\n ) {\n return {\n ...option,\n label: null,\n title: null,\n };\n }\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: ListData): object {\n if (facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n\n /**\n * facet title\n */\n private renderTitle() {\n each(this.facets, (facet: ListData) => {\n const { columnValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n });\n }\n\n /**\n * 计算分页数\n * @param total\n * @param pageSize\n */\n private getPageCount(total: number, pageSize: number): number {\n return Math.floor((total + pageSize - 1) / pageSize);\n }\n\n /**\n * 索引值在哪一页\n * @param index\n * @param pageSize\n */\n private getRowCol(index: number, pageSize: number) {\n const row = Math.floor(index / pageSize);\n const col = index % pageSize;\n\n return { row, col };\n }\n}\n","import { deepMix, each, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, MatrixCfg, MatrixData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class Matrix extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'matrix',\n showTitle: false,\n columnTitle: {\n ...super.getDefaultTitleCfg(),\n },\n rowTitle: {\n ...super.getDefaultTitleCfg(),\n },\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n protected afterEachView(view: View, facet: MatrixData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: MatrixData) {}\n\n protected generateFacets(data: Datum[]): MatrixData[] {\n const { fields, type } = this.cfg;\n\n // 矩阵中行列相等,等于指定的字段个数\n const rowValuesLength = fields.length;\n const columnValuesLength = rowValuesLength;\n\n const rst = [];\n for (let i = 0; i < columnValuesLength; i++) {\n const columnField = fields[i];\n for (let j = 0; j < rowValuesLength; j++) {\n const rowField = fields[j];\n\n const facet: MatrixData = {\n type,\n data,\n region: this.getRegion(rowValuesLength, columnValuesLength, i, j),\n\n columnValue: columnField,\n rowValue: rowField,\n columnField,\n rowField,\n columnIndex: i,\n rowIndex: j,\n columnValuesLength,\n rowValuesLength,\n };\n rst.push(facet);\n }\n }\n return rst;\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: MatrixData): object {\n // 最后一行显示\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return {\n ...option,\n label: null,\n title: null,\n };\n }\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: MatrixData): object {\n // 第一列显示\n if (facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n\n /**\n * facet title\n */\n private renderTitle() {\n each(this.facets, (facet: MatrixData, facetIndex: number) => {\n const { columnIndex, rowIndex, columnValuesLength, rowValuesLength, columnValue, rowValue, view } = facet;\n\n // top\n if (rowIndex === 0) {\n const formatter = get(this.cfg.columnTitle, 'formatter');\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.columnTitle\n );\n\n view.annotation().text(config);\n }\n // right\n if (columnIndex === columnValuesLength - 1) {\n const formatter = get(this.cfg.rowTitle, 'formatter');\n const config = deepMix(\n {\n position: ['100%', '50%'] as [string, string],\n content: formatter ? formatter(rowValue) : rowValue,\n },\n getFactTitleConfig(DIRECTION.RIGHT),\n this.cfg.rowTitle\n );\n\n view.annotation().text(config);\n }\n });\n }\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, MirrorCfg, MirrorData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class Mirror extends Facet {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'mirror',\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n transpose: false,\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n protected beforeEachView(view: View, facet: MirrorData) {\n // 做一下坐标系转化\n if (this.cfg.transpose) {\n if (facet.columnIndex % 2 === 0) {\n view.coordinate().transpose().reflect('x');\n } else {\n view.coordinate().transpose();\n }\n } else {\n if (facet.rowIndex % 2 !== 0) {\n view.coordinate().reflect('y');\n }\n }\n }\n\n protected afterEachView(view: View, facet: MirrorData) {\n this.processAxis(view, facet);\n }\n\n protected generateFacets(data: Datum[]): MirrorData[] {\n const [f] = this.cfg.fields;\n\n const rst = [];\n let columnValuesLength = 1;\n let rowValuesLength = 1;\n\n let columnValues: string[] = [''];\n let rowValues: string[] = [''];\n\n let columnField;\n let rowField;\n\n if (this.cfg.transpose) {\n columnField = f;\n columnValues = this.getFieldValues(data, columnField).slice(0, 2); // 镜像最多两个\n columnValuesLength = columnValues.length;\n } else {\n rowField = f;\n rowValues = this.getFieldValues(data, rowField).slice(0, 2); // 镜像最多两个\n rowValuesLength = rowValues.length;\n }\n\n // 获取每个维度对应的数据配置片段\n columnValues.forEach((xVal, xIndex) => {\n rowValues.forEach((yVal, yIndex) => {\n const conditions = [\n { field: columnField, value: xVal, values: columnValues },\n { field: rowField, value: yVal, values: rowValues },\n ];\n\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: MirrorData = {\n type: this.cfg.type,\n data: facetData,\n region: this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex),\n\n columnValue: xVal,\n rowValue: yVal,\n columnField,\n rowField,\n columnIndex: xIndex,\n rowIndex: yIndex,\n columnValuesLength,\n rowValuesLength,\n };\n rst.push(facet);\n });\n });\n\n return rst;\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: MirrorData): object {\n // 非最后一行\n // 当是最后一行或者下面没有 view 时文本不显示\n if (facet.columnIndex === 1 || facet.rowIndex === 1) {\n return {\n ...option,\n label: null,\n title: null,\n };\n }\n\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: MirrorData): object {\n // do nothing\n return option;\n }\n\n private renderTitle() {\n each(this.facets, (facet: MirrorData, facetIndex: number) => {\n const { columnValue, rowValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n if (this.cfg.transpose) {\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n } else {\n const config = deepMix(\n {\n position: ['100%', '50%'] as [string, string],\n content: formatter ? formatter(rowValue) : rowValue,\n },\n getFactTitleConfig(DIRECTION.RIGHT),\n this.cfg.title\n );\n\n view.annotation().text(config);\n }\n });\n }\n}\n","import { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, RectCfg, RectData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 矩阵分面\n */\nexport default class Rect extends Facet {\n protected afterEachView(view: View, facet: RectData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: RectData) {\n // do nothing\n }\n\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'rect',\n columnTitle: {\n ...super.getDefaultTitleCfg(),\n },\n rowTitle: {\n ...super.getDefaultTitleCfg(),\n },\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n /**\n * 生成矩阵分面的分面数据\n * @param data\n */\n protected generateFacets(data: Datum[]): RectData[] {\n const [columnField, rowField] = this.cfg.fields;\n\n const rst = [];\n let columnValuesLength = 1;\n let rowValuesLength = 1;\n\n let columnValues: string[] = [''];\n let rowValues: string[] = [''];\n\n if (columnField) {\n columnValues = this.getFieldValues(data, columnField);\n columnValuesLength = columnValues.length;\n }\n if (rowField) {\n rowValues = this.getFieldValues(data, rowField);\n rowValuesLength = rowValues.length;\n }\n\n // 获取每个维度对应的数据配置片段\n columnValues.forEach((xVal, xIndex) => {\n rowValues.forEach((yVal, yIndex) => {\n const conditions = [\n { field: columnField, value: xVal, values: columnValues },\n { field: rowField, value: yVal, values: rowValues },\n ];\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: RectData = {\n type: this.cfg.type,\n data: facetData,\n region: this.getRegion(rowValuesLength, columnValuesLength, xIndex, yIndex),\n\n columnValue: xVal,\n rowValue: yVal,\n columnField,\n rowField,\n columnIndex: xIndex,\n rowIndex: yIndex,\n columnValuesLength,\n rowValuesLength,\n };\n rst.push(facet);\n });\n });\n\n return rst;\n }\n\n private renderTitle(): void {\n each(this.facets, (facet: RectData, facetIndex: number) => {\n const { columnIndex, rowIndex, columnValuesLength, columnValue, rowValue, view } = facet;\n\n // top\n if (rowIndex === 0) {\n const formatter = get(this.cfg.columnTitle, 'formatter');\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.columnTitle\n );\n\n view.annotation().text(config);\n }\n // right\n if (columnIndex === columnValuesLength - 1) {\n const formatter = get(this.cfg.rowTitle, 'formatter');\n const config = deepMix(\n {\n position: ['100%', '50%'] as [string, string],\n content: formatter ? formatter(rowValue) : rowValue,\n },\n getFactTitleConfig(DIRECTION.RIGHT),\n this.cfg.rowTitle\n );\n\n view.annotation().text(config);\n }\n });\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: RectData): object {\n // 非最后一行\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return {\n ...option,\n title: null,\n label: null,\n };\n } else if (facet.columnIndex !== Math.floor((facet.columnValuesLength - 1) / 2)) {\n // 不是中间列\n return {\n ...option,\n title: null,\n };\n }\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: RectData): object {\n if (facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n } else if (facet.rowIndex !== Math.floor((facet.rowValuesLength - 1) / 2)) {\n return {\n ...option,\n title: null,\n };\n }\n return option;\n }\n}\n","/**\n * Create By Bruce Too\n * On 2020-02-10\n */\nimport { assign, deepMix, each, get } from '@antv/util';\nimport View from '../chart/view';\nimport { DIRECTION, VIEW_LIFE_CIRCLE } from '../constant';\nimport { AxisCfg, Condition, Datum, TreeCfg, TreeData } from '../interface';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * Tree Facet\n */\nexport default class Tree extends Facet {\n protected afterEachView(view: View, facet: TreeData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: TreeData) {}\n\n public init() {\n super.init();\n this.view.on(VIEW_LIFE_CIRCLE.AFTER_RENDER, this.afterChartRender);\n }\n\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'tree',\n line: {\n style: {\n lineWidth: 1,\n stroke: '#ddd',\n },\n smooth: false,\n },\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n });\n }\n\n protected generateFacets(data: Datum[]): TreeData[] {\n const fields = this.cfg.fields;\n if (!fields.length) {\n throw new Error('Please specify for the fields for rootFacet!');\n }\n const rst = [];\n const rootFacet: TreeData = {\n type: this.cfg.type,\n data,\n region: null,\n rowValuesLength: this.getRows(),\n columnValuesLength: 1,\n rowIndex: 0,\n columnIndex: 0,\n rowField: '',\n columnField: '',\n rowValue: '',\n columnValue: '',\n };\n rst.push(rootFacet);\n rootFacet.children = this.getChildFacets(data, 1, rst);\n this.setRegion(rst);\n return rst;\n }\n\n private setRegion(facets: TreeData[]) {\n this.forceColIndex(facets);\n facets.forEach((facet) => {\n // @ts-ignore 允许调整\n facet.region = this.getRegion(facet.rowValuesLength, facet.columnValuesLength, facet.columnIndex, facet.rowIndex);\n });\n }\n\n protected getRegion(rows: number, cols: number, xIndex: number, yIndex: number) {\n const xWidth = 1 / cols; // x轴方向的每个分面的偏移\n const yWidth = 1 / rows; // y轴方向的每个分面的偏移\n\n const start = {\n x: xWidth * xIndex,\n y: yWidth * yIndex,\n };\n\n const end = {\n x: start.x + xWidth,\n y: start.y + (yWidth * 2) / 3, // 预留1/3的空隙,方便添加连接线\n };\n return {\n start,\n end,\n };\n }\n\n private forceColIndex(facets: TreeData[]) {\n const leafs: TreeData[] = [];\n let index = 0;\n facets.forEach((facet) => {\n if (this.isLeaf(facet)) {\n leafs.push(facet);\n // @ts-ignore 允许调整\n facet.columnIndex = index;\n index++;\n }\n });\n\n leafs.forEach((facet) => {\n // @ts-ignore\n facet.columnValuesLength = leafs.length;\n });\n const maxLevel = this.cfg.fields.length;\n for (let i = maxLevel - 1; i >= 0; i--) {\n const levelFacets = this.getFacetsByLevel(facets, i);\n // var yIndex = maxLevel - i;\n for (const facet of levelFacets) {\n if (!this.isLeaf(facet)) {\n facet.originColIndex = facet.columnIndex;\n // @ts-ignore\n facet.columnIndex = this.getRegionIndex(facet.children);\n // @ts-ignore\n facet.columnValuesLength = leafs.length;\n }\n }\n }\n }\n\n // get facet use level\n private getFacetsByLevel(facets: TreeData[], level: number) {\n const rst: TreeData[] = [];\n facets.forEach((facet) => {\n if (facet.rowIndex === level) {\n rst.push(facet);\n }\n });\n return rst;\n }\n\n // if the facet has children , make it's column index in the middle of it's children\n private getRegionIndex(children: TreeData[]) {\n const first = children[0];\n const last = children[children.length - 1];\n return (last.columnIndex - first.columnIndex) / 2 + first.columnIndex;\n }\n\n // is a leaf without children\n private isLeaf(facet: TreeData) {\n return !facet.children || !facet.children.length;\n }\n\n private getRows() {\n return this.cfg.fields.length + 1;\n }\n\n // get child\n private getChildFacets(data: Datum[], level: number, arr: TreeData[]) {\n // [ 'grade', 'class' ]\n const fields = this.cfg.fields;\n const length = fields.length;\n if (length < level) {\n return;\n }\n const rst = [];\n // get fist level except root node\n const field = fields[level - 1];\n // get field value\n const values = this.getFieldValues(data, field);\n values.forEach((value, index) => {\n const conditions = [{ field, value, values } as Condition];\n const subData = data.filter(this.getFacetDataFilter(conditions));\n if (subData.length) {\n const facet: TreeData = {\n type: this.cfg.type,\n data: subData,\n region: null,\n columnValue: value,\n rowValue: '',\n columnField: field,\n rowField: '',\n columnIndex: index,\n rowValuesLength: this.getRows(),\n columnValuesLength: 1,\n rowIndex: level,\n children: this.getChildFacets(subData, level + 1, arr),\n };\n rst.push(facet);\n arr.push(facet);\n }\n });\n return rst;\n }\n\n public render() {\n super.render();\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n private afterChartRender = () => {\n if (this.facets && this.cfg.line) {\n this.container.clear();\n this.drawLines(this.facets);\n }\n };\n\n private renderTitle() {\n each(this.facets, (facet: TreeData) => {\n const { columnValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n });\n }\n\n private drawLines(facets: TreeData[]) {\n facets.forEach((facet) => {\n if (!this.isLeaf(facet)) {\n const children = facet.children;\n this.addFacetLines(facet, children);\n }\n });\n }\n\n // add lines with it's children\n private addFacetLines(facet: TreeData, children: TreeData[]) {\n const view = facet.view;\n const region = view.coordinateBBox;\n // top, right, bottom, left\n const start = {\n x: region.x + region.width / 2,\n y: region.y + region.height,\n };\n\n children.forEach((subFacet) => {\n const subRegion = subFacet.view.coordinateBBox;\n const end = {\n x: subRegion.bl.x + (subRegion.tr.x - subRegion.bl.x) / 2,\n y: subRegion.tr.y,\n };\n\n const middle1 = {\n x: start.x,\n y: start.y + (end.y - start.y) / 2,\n };\n const middle2 = {\n x: end.x,\n y: middle1.y,\n };\n this.drawLine([start, middle1, middle2, end]);\n });\n }\n\n private getPath(points) {\n const path = [];\n const smooth = this.cfg.line.smooth;\n if (smooth) {\n path.push(['M', points[0].x, points[0].y]);\n path.push(['C', points[1].x, points[1].y, points[2].x, points[2].y, points[3].x, points[3].y]);\n } else {\n points.forEach((point, index) => {\n if (index === 0) {\n path.push(['M', point.x, point.y]);\n } else {\n path.push(['L', point.x, point.y]);\n }\n });\n }\n\n return path;\n }\n\n // draw line width points\n private drawLine(points) {\n const path = this.getPath(points);\n const line = this.cfg.line.style;\n this.container.addShape('path', {\n attrs: assign(\n {\n // @ts-ignore\n path,\n },\n line\n ),\n });\n }\n\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: TreeData): object {\n if (facet.rowIndex !== facet.rowValuesLength - 1) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: TreeData): object {\n if (facet.originColIndex !== 0 && facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n}\n","import { reduce, isNumber } from '@antv/util';\n\n/**\n * 获得中位数\n * @param array\n */\nexport function getMedian(array: number[]) {\n const arr = [...array];\n // 先排序\n arr.sort((a: number, b: number) => {\n return a - b;\n });\n\n const len = arr.length;\n\n // median\n // 0\n if (len === 0) {\n return 0;\n }\n\n // 奇数\n if (len % 2 === 1) {\n return arr[(len - 1) / 2];\n }\n\n // 偶数\n return (arr[len / 2] + arr[len / 2 - 1]) / 2;\n}\n\n/**\n * 获得平均值\n * @param array\n */\nexport function getMean(array: number[]) {\n const sum = reduce(\n array,\n (r: number, num: number) => {\n return (r += isNaN(num) || !isNumber(num) ? 0 : num);\n },\n 0\n );\n\n return array.length === 0 ? 0 : sum / array.length;\n}\n","import { getMedian, getMean } from './stat';\nimport { Scale } from '../dependents';\n\n/**\n * parse the value position\n * @param val\n * @param scale\n */\nexport function getNormalizedValue(val: number | string, scale: Scale) {\n if (!scale) {\n return null;\n }\n let scaled: number;\n\n switch (val) {\n case 'start':\n return 0;\n case 'center':\n return 0.5;\n case 'end':\n return 1;\n case 'median': {\n scaled = scale.isCategory ? getMedian(scale.values.map((_, idx: number) => idx)) : getMedian(scale.values);\n break;\n }\n case 'mean': {\n scaled = scale.isCategory ? (scale.values.length - 1) / 2 : getMean(scale.values);\n break;\n }\n case 'min':\n scaled = scale.isCategory ? 0 : scale[val];\n break;\n case 'max':\n scaled = scale.isCategory ? scale.values.length - 1 : scale[val];\n break;\n default:\n scaled = val as number;\n break;\n }\n\n return scale.scale(scaled);\n}\n","import {\n contains,\n deepMix,\n each,\n get,\n isArray,\n isFunction,\n isNil,\n isString,\n keys,\n upperFirst,\n find,\n includes,\n} from '@antv/util';\nimport { Annotation as AnnotationComponent, IElement, IGroup } from '../../dependents';\nimport {\n AnnotationBaseOption as BaseOption,\n AnnotationPosition as Position,\n ArcOption,\n ComponentOption,\n ShapeAnnotationOption,\n Data,\n DataMarkerOption,\n DataRegionOption,\n Datum,\n HtmlAnnotationOption,\n ImageOption,\n LineOption,\n Point,\n RegionFilterOption,\n RegionOption,\n RegionPositionBaseOption,\n TextOption,\n} from '../../interface';\n\nimport { DEFAULT_ANIMATE_CFG } from '../../animate/';\nimport { COMPONENT_TYPE, DIRECTION, GEOMETRY_LIFE_CIRCLE, LAYER, VIEW_LIFE_CIRCLE } from '../../constant';\n\nimport Geometry from '../../geometry/base';\nimport Element from '../../geometry/element';\nimport { getAngleByPoint, getDistanceToCenter } from '../../util/coordinate';\nimport { omit } from '../../util/helper';\nimport { getNormalizedValue } from '../../util/annotation';\nimport View from '../view';\nimport { Controller } from './base';\nimport { Scale } from '@antv/attr';\n\n/** 需要在图形绘制完成后才渲染的辅助组件类型列表 */\nconst ANNOTATIONS_AFTER_RENDER = ['regionFilter', 'shape'];\n\n/**\n * Annotation controller, 主要作用:\n * 1. 创建 Annotation: line、text、arc ...\n * 2. 生命周期: init、layout、render、clear、destroy\n */\nexport default class Annotation extends Controller {\n private foregroundContainer: IGroup;\n private backgroundContainer: IGroup;\n\n /* 组件更新的 cache,组件配置 object : 组件 */\n private cache = new Map();\n\n constructor(view: View) {\n super(view);\n\n this.foregroundContainer = this.view.getLayer(LAYER.FORE).addGroup();\n this.backgroundContainer = this.view.getLayer(LAYER.BG).addGroup();\n\n this.option = [];\n }\n\n public get name(): string {\n return 'annotation';\n }\n\n public init() { }\n\n /**\n * 因为 annotation 需要依赖坐标系信息,所以 render 阶段为空方法,实际的创建逻辑都在 layout 中\n */\n public layout() {\n this.update();\n }\n\n // 因为 Annotation 不参与布局,但是渲染的位置依赖于坐标系,所以可以将绘制阶段延迟到 layout() 进行\n public render() { }\n\n /**\n * 更新\n */\n public update() {\n // 1. 先处理需要在图形渲染之后的辅助组件 需要在 Geometry 完成之后,拿到图形信息\n this.onAfterRender(() => {\n const updated = new Map();\n // 先看是否有 regionFilter/shape 要更新\n each(this.option, (option: BaseOption) => {\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n const co = this.updateOrCreate(option);\n // 存储已经处理过的\n if (co) {\n updated.set(this.getCacheKey(option), co);\n }\n }\n });\n\n // 处理完成之后,更新 cache\n // 处理完成之后,销毁删除的\n this.cache = this.syncCache(updated);\n });\n\n // 2. 处理非 regionFilter\n const updateCache = new Map();\n each(this.option, (option: BaseOption) => {\n if (!includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n const co = this.updateOrCreate(option);\n // 存储已经处理过的\n if (co) {\n updateCache.set(this.getCacheKey(option), co);\n }\n }\n });\n this.cache = this.syncCache(updateCache);\n }\n\n /**\n * 清空\n * @param includeOption 是否清空 option 配置项\n */\n public clear(includeOption = false) {\n super.clear();\n\n this.clearComponents();\n this.foregroundContainer.clear();\n this.backgroundContainer.clear();\n\n // clear all option\n if (includeOption) {\n this.option = [];\n }\n }\n\n public destroy() {\n this.clear(true);\n\n this.foregroundContainer.remove(true);\n this.backgroundContainer.remove(true);\n }\n\n /**\n * 复写基类的方法\n */\n public getComponents(): ComponentOption[] {\n const co = [];\n\n this.cache.forEach((value: ComponentOption) => {\n co.push(value);\n });\n\n return co;\n }\n\n /**\n * 清除当前的组件\n */\n private clearComponents() {\n this.getComponents().forEach((co) => {\n co.component.destroy();\n });\n\n this.cache.clear();\n }\n\n /**\n * region filter 比较特殊的渲染时机\n * @param doWhat\n */\n private onAfterRender(doWhat: () => void) {\n let done = false;\n if (this.view.getOptions().animate) {\n this.view.geometries.forEach((g: Geometry) => {\n // 如果 geometry 开启,则监听\n if (g.animateOption) {\n g.once(GEOMETRY_LIFE_CIRCLE.AFTER_DRAW_ANIMATE, () => {\n doWhat();\n });\n done = true;\n }\n });\n }\n\n if (!done) {\n this.view.getRootView().once(VIEW_LIFE_CIRCLE.AFTER_RENDER, () => {\n doWhat();\n });\n }\n }\n\n private createAnnotation(option: BaseOption) {\n const { type } = option;\n\n const Ctor = AnnotationComponent[upperFirst(type)];\n if (Ctor) {\n const theme = this.getAnnotationTheme(type);\n const cfg = this.getAnnotationCfg(type, option, theme);\n // 不创建\n if (!cfg) {\n return null;\n }\n const annotation = new Ctor(cfg);\n\n return {\n component: annotation,\n layer: this.isTop(cfg) ? LAYER.FORE : LAYER.BG,\n direction: DIRECTION.NONE,\n type: COMPONENT_TYPE.ANNOTATION,\n extra: option,\n };\n }\n }\n\n // APIs for creating annotation component\n public annotation(option: any) {\n this.option.push(option);\n }\n\n /**\n * 创建 Arc\n * @param option\n * @returns AnnotationController\n */\n public arc(option: ArcOption) {\n this.annotation({\n type: 'arc',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 image\n * @param option\n * @returns AnnotationController\n */\n public image(option: ImageOption) {\n this.annotation({\n type: 'image',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 Line\n * @param option\n * @returns AnnotationController\n */\n public line(option: LineOption) {\n this.annotation({\n type: 'line',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 Region\n * @param option\n * @returns AnnotationController\n */\n public region(option: RegionOption) {\n this.annotation({\n type: 'region',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 Text\n * @param option\n * @returns AnnotationController\n */\n public text(option: TextOption) {\n this.annotation({\n type: 'text',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 DataMarker\n * @param option\n * @returns AnnotationController\n */\n public dataMarker(option: DataMarkerOption) {\n this.annotation({\n type: 'dataMarker',\n ...option,\n });\n\n return this;\n }\n\n /**\n * 创建 DataRegion\n * @param option\n * @returns AnnotationController\n */\n public dataRegion(option: DataRegionOption) {\n this.annotation({\n type: 'dataRegion',\n ...option,\n });\n }\n\n /**\n * 创建 RegionFilter\n * @param option\n * @returns AnnotationController\n */\n public regionFilter(option: RegionFilterOption) {\n this.annotation({\n type: 'regionFilter',\n ...option,\n });\n }\n\n /**\n * 创建 ShapeAnnotation\n * @param option\n */\n public shape(option: ShapeAnnotationOption) {\n this.annotation({\n type: 'shape',\n ...option,\n });\n }\n\n /**\n * 创建 HtmlAnnotation\n * @param option\n */\n public html(option: HtmlAnnotationOption) {\n this.annotation({\n type: 'html',\n ...option,\n });\n }\n // end API\n\n /**\n * parse the point position to [x, y]\n * @param p Position\n * @returns { x, y }\n */\n private parsePosition(\n p:\n | [string | number, string | number]\n | Datum\n | ((xScale: Scale, yScale: Scale) => [string | number, string | number] | number | Datum)\n ): Point {\n const xScale = this.view.getXScale();\n // 转成 object\n const yScales = this.view.getScalesByDim('y');\n\n const position: Position = isFunction(p) ? p.call(null, xScale, yScales) : p;\n\n let x = 0;\n let y = 0;\n\n // 入参是 [24, 24] 这类时\n if (isArray(position)) {\n const [xPos, yPos] = position;\n // 如果数据格式是 ['50%', '50%'] 的格式\n // fix: 原始数据中可能会包含 'xxx5%xxx' 这样的数据,需要判断下 https://github.com/antvis/f2/issues/590\n // @ts-ignore\n if (isString(xPos) && xPos.indexOf('%') !== -1 && !isNaN(xPos.slice(0, -1))) {\n return this.parsePercentPosition(position as [string, string]);\n }\n\n x = getNormalizedValue(xPos, xScale);\n y = getNormalizedValue(yPos, Object.values(yScales)[0]);\n } else if (!isNil(position)) {\n // 入参是 object 结构,数据点\n for (const key of keys(position)) {\n const value = position[key];\n if (key === xScale.field) {\n x = getNormalizedValue(value, xScale);\n }\n if (yScales[key]) {\n y = getNormalizedValue(value, yScales[key]);\n }\n }\n }\n\n if (isNaN(x) || isNaN(y)) {\n return null;\n }\n\n return this.view.getCoordinate().convert({ x, y });\n }\n\n /**\n * parse all the points between start and end\n * @param start\n * @param end\n * @return Point[]\n */\n private getRegionPoints(start: Position | Data, end: Position | Data): Point[] {\n const xScale = this.view.getXScale();\n const yScales = this.view.getScalesByDim('y');\n const yScale = Object.values(yScales)[0];\n const xField = xScale.field;\n const viewData = this.view.getData();\n const startXValue = isArray(start) ? start[0] : start[xField];\n const endXValue = isArray(end) ? end[0] : end[xField];\n const arr = [];\n\n let startIndex;\n each(viewData, (item, idx) => {\n if (item[xField] === startXValue) {\n startIndex = idx;\n }\n if (idx >= startIndex) {\n const point = this.parsePosition([item[xField], item[yScale.field]]);\n if (point) {\n arr.push(point);\n }\n }\n if (item[xField] === endXValue) {\n return false;\n }\n });\n\n return arr;\n }\n\n /**\n * parse percent position\n * @param position\n */\n private parsePercentPosition(position: [string, string]): Point {\n const xPercent = parseFloat(position[0]) / 100;\n const yPercent = parseFloat(position[1]) / 100;\n const coordinate = this.view.getCoordinate();\n const { start, end } = coordinate;\n\n const topLeft = {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y),\n };\n const x = coordinate.getWidth() * xPercent + topLeft.x;\n const y = coordinate.getHeight() * yPercent + topLeft.y;\n return { x, y };\n }\n\n /**\n * get coordinate bbox\n */\n private getCoordinateBBox() {\n const coordinate = this.view.getCoordinate();\n const { start, end } = coordinate;\n\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n const topLeft = {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y),\n };\n\n return {\n x: topLeft.x,\n y: topLeft.y,\n minX: topLeft.x,\n minY: topLeft.y,\n maxX: topLeft.x + width,\n maxY: topLeft.y + height,\n width,\n height,\n };\n }\n\n /**\n * get annotation component config by different type\n * @param type\n * @param option 用户的配置\n * @param theme\n */\n private getAnnotationCfg(type: string, option: any, theme: object): object | null {\n const coordinate = this.view.getCoordinate();\n const canvas = this.view.getCanvas();\n let o = {};\n\n if (isNil(option)) {\n return null;\n }\n const { start, end, position } = option;\n const sp = this.parsePosition(start);\n const ep = this.parsePosition(end);\n const textPoint = this.parsePosition(position);\n if (['arc', 'image', 'line', 'region', 'regionFilter'].includes(type) && (!sp || !ep)) {\n return null;\n } else if (['text', 'dataMarker', 'html'].includes(type) && !textPoint) {\n return null;\n }\n\n if (type === 'arc') {\n const { start, end, ...rest } = option as ArcOption;\n const startAngle = getAngleByPoint(coordinate, sp);\n let endAngle = getAngleByPoint(coordinate, ep);\n if (startAngle > endAngle) {\n endAngle = Math.PI * 2 + endAngle;\n }\n\n o = {\n ...rest,\n center: coordinate.getCenter(),\n radius: getDistanceToCenter(coordinate, sp),\n startAngle,\n endAngle,\n };\n } else if (type === 'image') {\n const { start, end, ...rest } = option as ImageOption;\n o = {\n ...rest,\n start: sp,\n end: ep,\n src: option.src,\n };\n } else if (type === 'line') {\n const { start, end, ...rest } = option as LineOption;\n o = {\n ...rest,\n start: sp,\n end: ep,\n text: get(option, 'text', null),\n };\n } else if (type === 'region') {\n const { start, end, ...rest } = option as RegionPositionBaseOption;\n o = {\n ...rest,\n start: sp,\n end: ep,\n };\n } else if (type === 'text') {\n const filteredData = this.view.getData();\n const { position, content, ...rest } = option as TextOption;\n let textContent = content;\n if (isFunction(content)) {\n textContent = content(filteredData);\n }\n o = {\n ...textPoint,\n ...rest,\n content: textContent,\n };\n } else if (type === 'dataMarker') {\n const { position, point, line, text, autoAdjust, direction, ...rest } = option as DataMarkerOption;\n o = {\n ...rest,\n ...textPoint,\n coordinateBBox: this.getCoordinateBBox(),\n point,\n line,\n text,\n autoAdjust,\n direction,\n };\n } else if (type === 'dataRegion') {\n const { start, end, region, text, lineLength, ...rest } = option as DataRegionOption;\n o = {\n ...rest,\n points: this.getRegionPoints(start, end),\n region,\n text,\n lineLength,\n };\n } else if (type === 'regionFilter') {\n const { start, end, apply, color, ...rest } = option as RegionFilterOption;\n const geometries: Geometry[] = this.view.geometries;\n const shapes = [];\n const addShapes = (item?: IElement) => {\n if (!item) {\n return;\n }\n if (item.isGroup()) {\n (item as IGroup).getChildren().forEach((child) => addShapes(child));\n } else {\n shapes.push(item);\n }\n };\n each(geometries, (geom: Geometry) => {\n if (apply) {\n if (contains(apply, geom.type)) {\n each(geom.elements, (elem: Element) => {\n addShapes(elem.shape);\n });\n }\n } else {\n each(geom.elements, (elem: Element) => {\n addShapes(elem.shape);\n });\n }\n });\n o = {\n ...rest,\n color,\n shapes,\n start: sp,\n end: ep,\n };\n } else if (type === 'shape') {\n const { render, ...restOptions } = option as ShapeAnnotationOption;\n const wrappedRender = (container: IGroup) => {\n if (isFunction(option.render)) {\n return render(container, this.view, { parsePosition: this.parsePosition.bind(this) });\n }\n };\n o = {\n ...restOptions,\n render: wrappedRender,\n };\n } else if (type === 'html') {\n const { html, position, ...restOptions } = option as HtmlAnnotationOption;\n const wrappedHtml = (container: HTMLElement) => {\n if (isFunction(html)) {\n return html(container, this.view);\n }\n return html;\n };\n o = {\n ...restOptions,\n ...textPoint,\n // html 组件需要指定 parent\n parent: canvas.get('el').parentNode,\n html: wrappedHtml,\n };\n }\n // 合并主题,用户配置优先级高于默认主题\n const cfg = deepMix({}, theme, {\n ...o,\n top: option.top,\n style: option.style,\n offsetX: option.offsetX,\n offsetY: option.offsetY,\n });\n if (type !== 'html') {\n // html 类型不使用 G container\n cfg.container = this.getComponentContainer(cfg);\n }\n cfg.animate = this.view.getOptions().animate && cfg.animate && get(option, 'animate', cfg.animate); // 如果 view 关闭动画,则不执行\n cfg.animateOption = deepMix({}, DEFAULT_ANIMATE_CFG, cfg.animateOption, option.animateOption);\n\n return cfg;\n }\n\n /**\n * is annotation render on top\n * @param option\n * @return whethe on top\n */\n private isTop(option: any): boolean {\n return get(option, 'top', true);\n }\n\n /**\n * get the container by option.top\n * default is on top\n * @param option\n * @returns the container\n */\n private getComponentContainer(option: any) {\n return this.isTop(option) ? this.foregroundContainer : this.backgroundContainer;\n }\n\n private getAnnotationTheme(type: string) {\n return get(this.view.getTheme(), ['components', 'annotation', type], {});\n }\n\n /**\n * 创建或者更新 annotation\n * @param option\n */\n private updateOrCreate(option: BaseOption) {\n // 拿到缓存的内容\n let co = this.cache.get(this.getCacheKey(option));\n\n // 存在则更新,不存在在创建\n if (co) {\n const { type } = option;\n const theme = this.getAnnotationTheme(type);\n const cfg = this.getAnnotationCfg(type, option, theme);\n\n // 忽略掉一些配置\n if (cfg) {\n omit(cfg, ['container']);\n }\n co.component.update({ ...(cfg || {}), visible: !!cfg });\n // 对于 regionFilter/shape,因为生命周期的原因,需要额外 render\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n co.component.render();\n }\n } else {\n // 不存在,创建\n co = this.createAnnotation(option);\n if (co) {\n co.component.init();\n // Note:regionFilter/shape 特殊处理,regionFilter/shape 需要取到 Geometry 中的 Shape,需要在 view render 之后处理\n // 其他组件使用外层的统一 render 逻辑\n if (includes(ANNOTATIONS_AFTER_RENDER, option.type)) {\n co.component.render();\n }\n }\n }\n return co;\n }\n\n /**\n * 更新缓存,以及销毁组件\n * @param updated 更新或者创建的组件\n */\n private syncCache(updated: Map) {\n const newCache = new Map(this.cache); // clone 一份\n\n // 将 update 更新到 cache\n updated.forEach((co: ComponentOption, key: BaseOption) => {\n newCache.set(key, co);\n });\n\n // 另外和 options 进行对比,删除\n newCache.forEach((co: ComponentOption, key: BaseOption) => {\n // option 中已经找不到,那么就是删除的\n if (\n !find(this.option, (option: BaseOption) => {\n return key === this.getCacheKey(option);\n })\n ) {\n co.component.destroy();\n newCache.delete(key);\n }\n });\n\n return newCache;\n }\n\n /**\n * 获得缓存组件的 key\n * @param option\n */\n private getCacheKey(option: BaseOption) {\n // 如果存在 id,则使用 id string,否则直接使用 option 引用作为 key\n return option;\n // 后续扩展 id 用\n // const id = get(option, 'id');\n // return id ? id : option;\n }\n}\n","import { deepMix, get, map } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { Coordinate, Scale, Tick } from '../dependents';\n\n/**\n * @ignore\n * get the grid theme by type, will mix the common cfg of axis\n * @param theme\n * @param direction\n * @returns theme object\n */\nexport function getGridThemeCfg(theme: object, direction: DIRECTION | 'common'): object {\n const axisTheme = deepMix(\n {},\n get(theme, ['components', 'axis', 'common']),\n get(theme, ['components', 'axis', direction])\n );\n return get(axisTheme, ['grid'], {});\n}\n\n/**\n * @ignore\n * get axis grid items\n * @param coordinate\n * @param scale\n * @param dim\n * @return items\n */\nexport function getLineGridItems(coordinate: Coordinate, scale: Scale, dim: string, alignTick?: boolean) {\n const items = [];\n const ticks = scale.getTicks();\n if (coordinate.isPolar) {\n // 补全 ticks\n ticks.push({\n value: 1,\n text: '',\n tickValue: '',\n });\n }\n ticks.reduce((preTick: Tick, currentTick: Tick, currentIndex) => {\n const currentValue = currentTick.value;\n if (alignTick) {\n items.push({\n points: [\n coordinate.convert(dim === 'y' ? { x: 0, y: currentValue } : { x: currentValue, y: 0 }),\n coordinate.convert(dim === 'y' ? { x: 1, y: currentValue } : { x: currentValue, y: 1 }),\n ],\n });\n } else {\n if (currentIndex) {\n const preValue = preTick.value;\n const middleValue = (preValue + currentValue) / 2;\n items.push({\n points: [\n coordinate.convert(dim === 'y' ? { x: 0, y: middleValue } : { x: middleValue, y: 0 }),\n coordinate.convert(dim === 'y' ? { x: 1, y: middleValue } : { x: middleValue, y: 1 }),\n ],\n });\n }\n }\n return currentTick;\n }, ticks[0]);\n return items;\n}\n\n/**\n * @ignore\n * get\n * @param coordinate\n * @param xScale\n * @param yScale\n * @param dim\n * @returns items\n */\nexport function getCircleGridItems(\n coordinate: Coordinate,\n xScale: Scale,\n yScale: Scale,\n alignTick: boolean,\n dim: string\n) {\n const count = xScale.values.length;\n const items = [];\n const ticks = yScale.getTicks();\n\n ticks.reduce((preTick: Tick, currentTick: Tick) => {\n const preValue = preTick ? preTick.value : currentTick.value; // 只有一项数据时取当前值\n const currentValue = currentTick.value;\n const middleValue = (preValue + currentValue) / 2;\n if (dim === 'x') {\n // 如果是 x 轴作为半径轴,那么只需要取圆弧收尾两个即可\n items.push({\n points: [\n coordinate.convert({\n x: alignTick ? currentValue : middleValue,\n y: 0,\n }),\n coordinate.convert({\n x: alignTick ? currentValue : middleValue,\n y: 1,\n }),\n ],\n });\n } else {\n items.push({\n points: map(Array(count + 1), (__: any, idx: number) => {\n return coordinate.convert({\n x: idx / count,\n y: alignTick ? currentValue : middleValue,\n });\n }),\n });\n }\n\n return currentTick;\n }, ticks[0]);\n return items;\n}\n\n/**\n * @ignore\n * show grid or not\n * @param axisTheme\n * @param axisOption\n */\nexport function showGrid(axisTheme: any, axisOption: any): boolean {\n const userGrid = get(axisOption, 'grid');\n if (userGrid === null) {\n return false;\n }\n\n const themeGrid = get(axisTheme, 'grid');\n\n return !(userGrid === undefined && themeGrid === null);\n}\n","import { deepMix, each, get, isUndefined } from '@antv/util';\nimport { DIRECTION, COMPONENT_TYPE, LAYER } from '../../constant';\nimport { CircleAxis, CircleGrid, IGroup, LineAxis, LineGrid, Scale } from '../../dependents';\nimport { AxisCfg, AxisOption, ComponentOption } from '../../interface';\n\nimport { DEFAULT_ANIMATE_CFG } from '../../animate/';\n\nimport {\n getAxisDirection,\n getAxisFactorByRegion,\n getAxisRegion,\n getAxisThemeCfg,\n getAxisTitleOptions,\n getAxisTitleText,\n getCircleAxisCenterRadius,\n isVertical,\n} from '../../util/axis';\nimport { getAxisOption } from '../../util/axis';\nimport { getCircleGridItems, getGridThemeCfg, getLineGridItems, showGrid } from '../../util/grid';\nimport { omit } from '../../util/helper';\nimport View from '../view';\nimport { Controller } from './base';\n\ntype Option = Record | boolean;\n\ntype Cache = Map;\n\n// update 组件的时候,忽略的数据更新\nconst OMIT_CFG = ['container'];\n\n// 坐标轴默认动画配置\nconst AXIS_DEFAULT_ANIMATE_CFG = {\n ...DEFAULT_ANIMATE_CFG,\n appear: null,\n};\n\n/**\n * @ignore\n * G2 Axis controller, will:\n * - create component\n * - axis\n * - grid\n * - life circle\n */\nexport default class Axis extends Controller
    \r\n\t)\r\n}\r\n\r\nexport default memo(CustomerInfoView) ","import { memo } from \"react\"\r\n\r\nconst DebtControl = () => {\r\n return (\r\n <>\r\n Quản lý công nợ\r\n \r\n )\r\n}\r\n\r\nexport default memo(DebtControl)","import { Card, Checkbox, Table } from \"antd\";\r\nimport Search from \"antd/es/transfer/search\";\r\nimport { memo, useEffect, useState } from \"react\"\r\nimport SearchComponent from \"../searchComponent\";\r\nimport { useAppSelector } from \"../../../../../app/hooks\";\r\n\r\nconst TransactionHistory = () => {\r\n const dataReducer = useAppSelector((state) => state.screens.customer);\r\n const [state, setState] = useState({\r\n data: [],\r\n count: 0,\r\n currentPage: 1,\r\n });\r\n const _onChangePage = async (page: number) => {\r\n setState({ ...state, currentPage: page });\r\n };\r\n useEffect(() => {\r\n if (dataReducer?.dataDetail?.orders) {\r\n setState({data: dataReducer?.dataDetail?.orders});\r\n }\r\n }, [dataReducer]);\r\n const header: any = [\r\n {\r\n title: \"STT\",\r\n key: \"id\",\r\n dataIndex: \"id\",\r\n align: \"center\",\r\n render: (_text: string, record: any, index: number) => {\r\n return <>{index + 1};\r\n },\r\n },\r\n {\r\n title: \"Mã hợp đồng\",\r\n key: \"documentNo\",\r\n dataIndex: \"documentNo\",\r\n align: \"left\",\r\n },\r\n {\r\n title: \"Ngày giao dịch\",\r\n key: \"orderedAt\",\r\n dataIndex: \"orderedAt\",\r\n align: \"center\",\r\n render: (_text: string, record: any, index: number) => {\r\n return
    \r\n {(new Date(_text).toISOString().slice(0, 10).replace('T', ' ')).split(\"-\").reverse().join(\"-\")}\r\n
    \r\n },\r\n },\r\n {\r\n title: \"Giá trị hợp đồng\",\r\n key: \"amount\",\r\n dataIndex: \"amount\",\r\n align: \"center\",\r\n render: (_text: number, record: any, index: number) => {\r\n return new Intl.NumberFormat(\"de-DE\").format(_text) + ' VND'\r\n },\r\n },\r\n {\r\n title: \"Trạng thái\",\r\n key: \"status\",\r\n dataIndex: \"status\",\r\n align: \"center\",\r\n render: (_text: string, record: any, index: number) => {\r\n return
    \r\n {record.status === \"CO\" ? \"Hoàn thành\" : \"Chưa hoàn thành\"}\r\n
    \r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n Thông tin giao dịch}\r\n className=\"rounded-none\"\r\n >\r\n {/* \r\n \r\n */}\r\n {\r\n // return {\r\n // onDoubleClick: () => {\r\n // handleDoubleClick(record?.maDoiTac);\r\n // onGetDetail(record?.maDoiTac)\r\n // },\r\n // };\r\n // }}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default memo(TransactionHistory)","import { memo } from \"react\"\r\n\r\nconst WarrantyHistory = () => {\r\n return (\r\n <>\r\n Lịch sử bảo hành\r\n \r\n )\r\n}\r\n\r\nexport default memo(WarrantyHistory)","import { memo } from \"react\"\r\n\r\nconst ComplaintHistory = () => {\r\n return (\r\n <>\r\n Lịch sử PA/KN\r\n \r\n )\r\n}\r\n\r\nexport default memo(ComplaintHistory)","import { memo } from \"react\"\r\n\r\nconst ImpactHistory = () => {\r\n return (\r\n <>\r\n Không có dữ liệu\r\n \r\n )\r\n}\r\n\r\nexport default memo(ImpactHistory)","import { memo } from \"react\"\r\n\r\nconst Survey = () => {\r\n return (\r\n <>\r\n Thông tin khảo sát\r\n \r\n )\r\n}\r\n\r\nexport default memo(Survey)","import { memo } from \"react\"\r\nimport { Tabs, TabsProps } from 'antd';\r\nimport PurchaseHistory from \"./opportunityDetailTab/purchaseHistory\";\r\nimport DebtControl from \"./opportunityDetailTab/debtControl\";\r\nimport TransactionHistory from \"./opportunityDetailTab/transactionHistory\";\r\nimport WarrantyHistory from \"./opportunityDetailTab/warrantyHistory\";\r\nimport ComplaintHistory from \"./opportunityDetailTab/complaintHistory\";\r\nimport ImpactHistory from \"./opportunityDetailTab/impactHistory\";\r\nimport Survey from \"./opportunityDetailTab/survey\";\r\n\r\nconst DataHistory = () => {\r\n const items: TabsProps['items'] = [\r\n\t\t{\r\n\t\t\tkey: '1',\r\n\t\t\tlabel: `Lịch sử giao dịch`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n\t\t// {\r\n\t\t// \tkey: '1',\r\n\t\t// \tlabel: `Lịch sử mua hàng`,\r\n\t\t// \tchildren: ,\r\n\t\t// },\r\n\t\t{\r\n\t\t\tkey: '2',\r\n\t\t\tlabel: `Quản lý công nợ`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n {\r\n\t\t\tkey: '3',\r\n\t\t\tlabel: `Lịch sử bảo hành`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n {\r\n\t\t\tkey: '4',\r\n\t\t\tlabel: `Lịch sử PA/KN`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n {\r\n\t\t\tkey: '5',\r\n\t\t\tlabel: `Lịch sử tác động`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n {\r\n\t\t\tkey: '6',\r\n\t\t\tlabel: `Khảo sát`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n\t];\r\n const onChange = (key: string) => {\r\n\t\tconsole.log(key);\r\n\t};\r\n return(\r\n \r\n )\r\n}\r\n\r\nexport default memo(DataHistory)","import { Tabs, TabsProps } from \"antd\";\r\nimport { memo } from \"react\"\r\n\r\nconst Opportunity = () => {\r\n const items: TabsProps['items'] = [\r\n\t\t{\r\n\t\t\tkey: '1',\r\n\t\t\tlabel: `Gói thầu`,\r\n\t\t\t// children: ,\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: '2',\r\n\t\t\tlabel: `Dự án`,\r\n\t\t\t// children: ,\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: '3',\r\n\t\t\tlabel: `Báo giá`,\r\n\t\t\t// children: ,\r\n\t\t},\r\n\t];\r\n const onChange = (key: string) => {\r\n\t\tconsole.log(key);\r\n\t};\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default memo(Opportunity)","import { memo } from \"react\";\r\nimport { Button, Tabs } from 'antd';\r\nimport type { TabsProps } from 'antd';\r\nimport Dashboard from \"../dashboard\";\r\nimport CustomerInfoView from \"../customerInfoView\";\r\nimport DataHistory from \"../dataHistory\";\r\nimport Opportunity from \"../opportunity\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst BlockInfoDetail = () => {\r\n\tconst onChange = (key: string) => {\r\n\t\tconsole.log(key);\r\n\t};\r\n\r\n\tconst history = useHistory();\r\n\r\n\tconst goBack = () => {\r\n history.goBack();\r\n };\r\n\r\n\tconst operations = ;\r\n\r\n\tconst items: TabsProps['items'] = [\r\n\t\t{\r\n\t\t\tkey: '1',\r\n\t\t\tlabel: `Dashboard`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: '2',\r\n\t\t\tlabel: `Thông tin cá nhân`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: '3',\r\n\t\t\tlabel: `Dữ liệu quá khứ`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: '4',\r\n\t\t\tlabel: `Quản lý cơ hội`,\r\n\t\t\tchildren: ,\r\n\t\t},\r\n\t];\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{/* Tab display info */}\r\n\t\t\t\r\n\t\t\t\r\n\t\t
    \r\n\t)\r\n}\r\n\r\nexport default memo(BlockInfoDetail);","// This icon file is generated automatically.\nvar GlobalOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z\" } }] }, \"name\": \"global\", \"theme\": \"outlined\" };\nexport default GlobalOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport GlobalOutlinedSvg from \"@ant-design/icons-svg/es/asn/GlobalOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar GlobalOutlined = function GlobalOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: GlobalOutlinedSvg\n }));\n};\nGlobalOutlined.displayName = 'GlobalOutlined';\nexport default /*#__PURE__*/React.forwardRef(GlobalOutlined);","// This icon file is generated automatically.\nvar IdcardOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560zM610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z\" } }] }, \"name\": \"idcard\", \"theme\": \"outlined\" };\nexport default IdcardOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport IdcardOutlinedSvg from \"@ant-design/icons-svg/es/asn/IdcardOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar IdcardOutlined = function IdcardOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: IdcardOutlinedSvg\n }));\n};\nIdcardOutlined.displayName = 'IdcardOutlined';\nexport default /*#__PURE__*/React.forwardRef(IdcardOutlined);","// This icon file is generated automatically.\nvar CreditCardOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"credit-card\", \"theme\": \"outlined\" };\nexport default CreditCardOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CreditCardOutlinedSvg from \"@ant-design/icons-svg/es/asn/CreditCardOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CreditCardOutlined = function CreditCardOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CreditCardOutlinedSvg\n }));\n};\nCreditCardOutlined.displayName = 'CreditCardOutlined';\nexport default /*#__PURE__*/React.forwardRef(CreditCardOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"prefixCls\", \"style\", \"active\", \"status\", \"iconPrefix\", \"icon\", \"wrapperStyle\", \"stepNumber\", \"disabled\", \"description\", \"title\", \"subTitle\", \"progressDot\", \"stepIcon\", \"tailContent\", \"icons\", \"stepIndex\", \"onStepClick\", \"onClick\", \"render\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nfunction isString(str) {\n return typeof str === 'string';\n}\n\nfunction Step(props) {\n var _classNames2;\n\n var className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n active = props.active,\n status = props.status,\n iconPrefix = props.iconPrefix,\n icon = props.icon,\n wrapperStyle = props.wrapperStyle,\n stepNumber = props.stepNumber,\n disabled = props.disabled,\n description = props.description,\n title = props.title,\n subTitle = props.subTitle,\n progressDot = props.progressDot,\n stepIcon = props.stepIcon,\n tailContent = props.tailContent,\n icons = props.icons,\n stepIndex = props.stepIndex,\n onStepClick = props.onStepClick,\n onClick = props.onClick,\n render = props.render,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var onInternalClick = function onInternalClick() {\n if (onClick) {\n onClick.apply(void 0, arguments);\n }\n\n onStepClick(stepIndex);\n };\n\n var renderIconNode = function renderIconNode() {\n var _classNames;\n\n var iconNode;\n var iconClassName = classNames(\"\".concat(prefixCls, \"-icon\"), \"\".concat(iconPrefix, \"icon\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-\").concat(icon), icon && isString(icon)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-check\"), !icon && status === 'finish' && (icons && !icons.finish || !icons)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-cross\"), !icon && status === 'error' && (icons && !icons.error || !icons)), _classNames));\n var iconDot = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon-dot\")\n }); // `progressDot` enjoy the highest priority\n\n if (progressDot) {\n if (typeof progressDot === 'function') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, progressDot(iconDot, {\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description\n }));\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, iconDot);\n }\n } else if (icon && !isString(icon)) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icon);\n } else if (icons && icons.finish && status === 'finish') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.finish);\n } else if (icons && icons.error && status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.error);\n } else if (icon || status === 'finish' || status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, stepNumber);\n }\n\n if (stepIcon) {\n iconNode = stepIcon({\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description,\n node: iconNode\n });\n }\n\n return iconNode;\n };\n\n var mergedStatus = status || 'wait';\n var classString = classNames(\"\".concat(prefixCls, \"-item\"), \"\".concat(prefixCls, \"-item-\").concat(mergedStatus), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-custom\"), icon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-active\"), active), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-disabled\"), disabled === true), _classNames2));\n\n var stepItemStyle = _objectSpread({}, style);\n\n var accessibilityProps = {};\n\n if (onStepClick && !disabled) {\n accessibilityProps.role = 'button';\n accessibilityProps.tabIndex = 0;\n accessibilityProps.onClick = onInternalClick;\n }\n\n var stepNode = /*#__PURE__*/React.createElement(\"div\", _extends({}, restProps, {\n className: classString,\n style: stepItemStyle\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n onClick: onClick\n }, accessibilityProps, {\n className: \"\".concat(prefixCls, \"-item-container\")\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-tail\")\n }, tailContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-icon\")\n }, renderIconNode()), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-title\")\n }, title, subTitle && /*#__PURE__*/React.createElement(\"div\", {\n title: typeof subTitle === 'string' ? subTitle : undefined,\n className: \"\".concat(prefixCls, \"-item-subtitle\")\n }, subTitle)), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-description\")\n }, description))));\n\n if (render) {\n stepNode = render(stepNode) || null;\n }\n\n return stepNode;\n}\n\nexport default Step;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"className\", \"children\", \"direction\", \"type\", \"labelPlacement\", \"iconPrefix\", \"status\", \"size\", \"current\", \"progressDot\", \"stepIcon\", \"initial\", \"icons\", \"onChange\", \"itemRender\", \"items\"];\n\n/* eslint react/no-did-mount-set-state: 0, react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nimport Step from \"./Step\";\n\nfunction Steps(props) {\n var _classNames;\n\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-steps' : _props$prefixCls,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n _props$labelPlacement = props.labelPlacement,\n labelPlacement = _props$labelPlacement === void 0 ? 'horizontal' : _props$labelPlacement,\n _props$iconPrefix = props.iconPrefix,\n iconPrefix = _props$iconPrefix === void 0 ? 'rc' : _props$iconPrefix,\n _props$status = props.status,\n status = _props$status === void 0 ? 'process' : _props$status,\n size = props.size,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n _props$progressDot = props.progressDot,\n progressDot = _props$progressDot === void 0 ? false : _props$progressDot,\n stepIcon = props.stepIcon,\n _props$initial = props.initial,\n initial = _props$initial === void 0 ? 0 : _props$initial,\n icons = props.icons,\n onChange = props.onChange,\n itemRender = props.itemRender,\n _props$items = props.items,\n items = _props$items === void 0 ? [] : _props$items,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var isNav = type === 'navigation';\n var isInline = type === 'inline'; // inline type requires fixed progressDot direction size.\n\n var mergedProgressDot = isInline || progressDot;\n var mergedDirection = isInline ? 'horizontal' : direction;\n var mergedSize = isInline ? undefined : size;\n var adjustedLabelPlacement = mergedProgressDot ? 'vertical' : labelPlacement;\n var classString = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedDirection), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-label-\").concat(adjustedLabelPlacement), mergedDirection === 'horizontal'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), !!mergedProgressDot), _defineProperty(_classNames, \"\".concat(prefixCls, \"-navigation\"), isNav), _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline\"), isInline), _classNames));\n\n var onStepClick = function onStepClick(next) {\n if (onChange && current !== next) {\n onChange(next);\n }\n };\n\n var renderStep = function renderStep(item, index) {\n var mergedItem = _objectSpread({}, item);\n\n var stepNumber = initial + index; // fix tail color\n\n if (status === 'error' && index === current - 1) {\n mergedItem.className = \"\".concat(prefixCls, \"-next-error\");\n }\n\n if (!mergedItem.status) {\n if (stepNumber === current) {\n mergedItem.status = status;\n } else if (stepNumber < current) {\n mergedItem.status = 'finish';\n } else {\n mergedItem.status = 'wait';\n }\n }\n\n if (isInline) {\n mergedItem.icon = undefined;\n mergedItem.subTitle = undefined;\n }\n\n if (!mergedItem.render && itemRender) {\n mergedItem.render = function (stepItem) {\n return itemRender(mergedItem, stepItem);\n };\n }\n\n return /*#__PURE__*/React.createElement(Step, _extends({}, mergedItem, {\n active: stepNumber === current,\n stepNumber: stepNumber + 1,\n stepIndex: stepNumber,\n key: stepNumber,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n wrapperStyle: style,\n progressDot: mergedProgressDot,\n stepIcon: stepIcon,\n icons: icons,\n onStepClick: onChange && onStepClick\n }));\n };\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, restProps), items.filter(function (item) {\n return item;\n }).map(renderStep));\n}\n\nSteps.Step = Step;\nexport default Steps;","import Steps from \"./Steps\";\nimport Step from \"./Step\";\nexport { Step };\nexport default Steps;","const genStepsCustomIconStyle = token => {\n const {\n componentCls,\n stepsIconCustomTop,\n stepsIconCustomSize,\n stepsIconCustomFontSize\n } = token;\n return {\n [`${componentCls}-item-custom`]: {\n [`> ${componentCls}-item-container > ${componentCls}-item-icon`]: {\n height: 'auto',\n background: 'none',\n border: 0,\n [`> ${componentCls}-icon`]: {\n top: stepsIconCustomTop,\n width: stepsIconCustomSize,\n height: stepsIconCustomSize,\n fontSize: stepsIconCustomFontSize,\n lineHeight: `${stepsIconCustomSize}px`\n }\n }\n },\n // Only adjust horizontal customize icon width\n [`&:not(${componentCls}-vertical)`]: {\n [`${componentCls}-item-custom`]: {\n [`${componentCls}-item-icon`]: {\n width: 'auto',\n background: 'none'\n }\n }\n }\n };\n};\nexport default genStepsCustomIconStyle;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genStepsCustomIconStyle from './custom-icon';\nimport genStepsLabelPlacementStyle from './label-placement';\nimport genStepsNavStyle from './nav';\nimport genStepsProgressStyle from './progress';\nimport genStepsProgressDotStyle from './progress-dot';\nimport genStepsRTLStyle from './rtl';\nimport genStepsSmallStyle from './small';\nimport genStepsVerticalStyle from './vertical';\nimport genStepsInlineStyle from './inline';\nimport { resetComponent } from '../../style';\nvar StepItemStatusEnum;\n(function (StepItemStatusEnum) {\n StepItemStatusEnum[\"wait\"] = \"wait\";\n StepItemStatusEnum[\"process\"] = \"process\";\n StepItemStatusEnum[\"finish\"] = \"finish\";\n StepItemStatusEnum[\"error\"] = \"error\";\n})(StepItemStatusEnum || (StepItemStatusEnum = {}));\nconst genStepsItemStatusStyle = (status, token) => {\n const prefix = `${token.componentCls}-item`;\n const iconColorKey = `${status}IconColor`;\n const titleColorKey = `${status}TitleColor`;\n const descriptionColorKey = `${status}DescriptionColor`;\n const tailColorKey = `${status}TailColor`;\n const iconBgColorKey = `${status}IconBgColor`;\n const iconBorderColorKey = `${status}IconBorderColor`;\n const dotColorKey = `${status}DotColor`;\n return {\n [`${prefix}-${status} ${prefix}-icon`]: {\n backgroundColor: token[iconBgColorKey],\n borderColor: token[iconBorderColorKey],\n [`> ${token.componentCls}-icon`]: {\n color: token[iconColorKey],\n [`${token.componentCls}-icon-dot`]: {\n background: token[dotColorKey]\n }\n }\n },\n [`${prefix}-${status}${prefix}-custom ${prefix}-icon`]: {\n [`> ${token.componentCls}-icon`]: {\n color: token[dotColorKey]\n }\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-content > ${prefix}-title`]: {\n color: token[titleColorKey],\n '&::after': {\n backgroundColor: token[tailColorKey]\n }\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-content > ${prefix}-description`]: {\n color: token[descriptionColorKey]\n },\n [`${prefix}-${status} > ${prefix}-container > ${prefix}-tail::after`]: {\n backgroundColor: token[tailColorKey]\n }\n };\n};\nconst genStepsItemStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n const stepsItemCls = `${componentCls}-item`; // .ant-steps-item\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n [stepsItemCls]: {\n position: 'relative',\n display: 'inline-block',\n flex: 1,\n overflow: 'hidden',\n verticalAlign: 'top',\n '&:last-child': {\n flex: 'none',\n [`> ${stepsItemCls}-container > ${stepsItemCls}-tail, > ${stepsItemCls}-container > ${stepsItemCls}-content > ${stepsItemCls}-title::after`]: {\n display: 'none'\n }\n }\n },\n [`${stepsItemCls}-container`]: {\n outline: 'none'\n },\n [`${stepsItemCls}-icon, ${stepsItemCls}-content`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [`${stepsItemCls}-icon`]: {\n width: token.stepsIconSize,\n height: token.stepsIconSize,\n marginTop: 0,\n marginBottom: 0,\n marginInlineStart: 0,\n marginInlineEnd: token.marginXS,\n fontSize: token.stepsIconFontSize,\n fontFamily: token.fontFamily,\n lineHeight: `${token.stepsIconSize}px`,\n textAlign: 'center',\n borderRadius: token.stepsIconSize,\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n transition: `background-color ${motionDurationSlow}, border-color ${motionDurationSlow}`,\n [`${componentCls}-icon`]: {\n position: 'relative',\n top: token.stepsIconTop,\n color: token.colorPrimary,\n lineHeight: 1\n }\n },\n [`${stepsItemCls}-tail`]: {\n position: 'absolute',\n top: token.stepsIconSize / 2 - token.paddingXXS,\n insetInlineStart: 0,\n width: '100%',\n '&::after': {\n display: 'inline-block',\n width: '100%',\n height: token.lineWidth,\n background: token.colorSplit,\n borderRadius: token.lineWidth,\n transition: `background ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n [`${stepsItemCls}-title`]: {\n position: 'relative',\n display: 'inline-block',\n paddingInlineEnd: token.padding,\n color: token.colorText,\n fontSize: token.fontSizeLG,\n lineHeight: `${token.stepsTitleLineHeight}px`,\n '&::after': {\n position: 'absolute',\n top: token.stepsTitleLineHeight / 2,\n insetInlineStart: '100%',\n display: 'block',\n width: 9999,\n height: token.lineWidth,\n background: token.processTailColor,\n content: '\"\"'\n }\n },\n [`${stepsItemCls}-subtitle`]: {\n display: 'inline',\n marginInlineStart: token.marginXS,\n color: token.colorTextDescription,\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`${stepsItemCls}-description`]: {\n color: token.colorTextDescription,\n fontSize: token.fontSize\n }\n }, genStepsItemStatusStyle(StepItemStatusEnum.wait, token)), genStepsItemStatusStyle(StepItemStatusEnum.process, token)), {\n [`${stepsItemCls}-process > ${stepsItemCls}-container > ${stepsItemCls}-title`]: {\n fontWeight: token.fontWeightStrong\n }\n }), genStepsItemStatusStyle(StepItemStatusEnum.finish, token)), genStepsItemStatusStyle(StepItemStatusEnum.error, token)), {\n [`${stepsItemCls}${componentCls}-next-error > ${componentCls}-item-title::after`]: {\n background: token.colorError\n },\n [`${stepsItemCls}-disabled`]: {\n cursor: 'not-allowed'\n }\n });\n};\n// ============================= Clickable ===========================\nconst genStepsClickableStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return {\n [`& ${componentCls}-item`]: {\n [`&:not(${componentCls}-item-active)`]: {\n [`& > ${componentCls}-item-container[role='button']`]: {\n cursor: 'pointer',\n [`${componentCls}-item`]: {\n [`&-title, &-subtitle, &-description, &-icon ${componentCls}-icon`]: {\n transition: `color ${motionDurationSlow}`\n }\n },\n '&:hover': {\n [`${componentCls}-item`]: {\n [`&-title, &-subtitle, &-description`]: {\n color: token.colorPrimary\n }\n }\n }\n },\n [`&:not(${componentCls}-item-process)`]: {\n [`& > ${componentCls}-item-container[role='button']:hover`]: {\n [`${componentCls}-item`]: {\n '&-icon': {\n borderColor: token.colorPrimary,\n [`${componentCls}-icon`]: {\n color: token.colorPrimary\n }\n }\n }\n }\n }\n }\n },\n [`&${componentCls}-horizontal:not(${componentCls}-label-vertical)`]: {\n [`${componentCls}-item`]: {\n paddingInlineStart: token.padding,\n whiteSpace: 'nowrap',\n '&:first-child': {\n paddingInlineStart: 0\n },\n [`&:last-child ${componentCls}-item-title`]: {\n paddingInlineEnd: 0\n },\n '&-tail': {\n display: 'none'\n },\n '&-description': {\n maxWidth: token.descriptionWidth,\n whiteSpace: 'normal'\n }\n }\n }\n };\n};\nconst genStepsStyle = token => {\n const {\n componentCls\n } = token; // .ant-steps\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n width: '100%',\n fontSize: 0,\n textAlign: 'initial'\n }), genStepsItemStyle(token)), genStepsClickableStyle(token)), genStepsCustomIconStyle(token)), genStepsSmallStyle(token)), genStepsVerticalStyle(token)), genStepsLabelPlacementStyle(token)), genStepsProgressDotStyle(token)), genStepsNavStyle(token)), genStepsRTLStyle(token)), genStepsProgressStyle(token)), genStepsInlineStyle(token))\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Steps', token => {\n const {\n wireframe,\n colorTextDisabled,\n fontSizeHeading3,\n fontSize,\n controlHeight,\n controlHeightLG,\n colorTextLightSolid,\n colorText,\n colorPrimary,\n colorTextLabel,\n colorTextDescription,\n colorTextQuaternary,\n colorFillContent,\n controlItemBgActive,\n colorError,\n colorBgContainer,\n colorBorderSecondary\n } = token;\n const stepsIconSize = token.controlHeight;\n const processTailColor = token.colorSplit;\n const stepsToken = mergeToken(token, {\n // Steps variable default.less\n processTailColor,\n stepsNavArrowColor: colorTextDisabled,\n stepsIconSize,\n stepsIconCustomSize: stepsIconSize,\n stepsIconCustomTop: 0,\n stepsIconCustomFontSize: controlHeightLG / 2,\n stepsIconTop: -0.5,\n stepsIconFontSize: fontSize,\n stepsTitleLineHeight: controlHeight,\n stepsSmallIconSize: fontSizeHeading3,\n stepsDotSize: controlHeight / 4,\n stepsCurrentDotSize: controlHeightLG / 4,\n stepsNavContentMaxWidth: 'auto',\n // Steps component less variable\n processIconColor: colorTextLightSolid,\n processTitleColor: colorText,\n processDescriptionColor: colorText,\n processIconBgColor: colorPrimary,\n processIconBorderColor: colorPrimary,\n processDotColor: colorPrimary,\n waitIconColor: wireframe ? colorTextDisabled : colorTextLabel,\n waitTitleColor: colorTextDescription,\n waitDescriptionColor: colorTextDescription,\n waitTailColor: processTailColor,\n waitIconBgColor: wireframe ? colorBgContainer : colorFillContent,\n waitIconBorderColor: wireframe ? colorTextDisabled : 'transparent',\n waitDotColor: colorTextDisabled,\n finishIconColor: colorPrimary,\n finishTitleColor: colorText,\n finishDescriptionColor: colorTextDescription,\n finishTailColor: colorPrimary,\n finishIconBgColor: wireframe ? colorBgContainer : controlItemBgActive,\n finishIconBorderColor: wireframe ? colorPrimary : controlItemBgActive,\n finishDotColor: colorPrimary,\n errorIconColor: colorTextLightSolid,\n errorTitleColor: colorError,\n errorDescriptionColor: colorError,\n errorTailColor: processTailColor,\n errorIconBgColor: colorError,\n errorIconBorderColor: colorError,\n errorDotColor: colorError,\n stepsNavActiveColor: colorPrimary,\n stepsProgressSize: controlHeightLG,\n // Steps inline variable\n inlineDotSize: 6,\n inlineTitleColor: colorTextQuaternary,\n inlineTailColor: colorBorderSecondary\n });\n return [genStepsStyle(stepsToken)];\n}, {\n descriptionWidth: 140\n});","const genStepsLabelPlacementStyle = token => {\n const {\n componentCls,\n stepsIconSize,\n lineHeight,\n stepsSmallIconSize\n } = token;\n return {\n [`&${componentCls}-label-vertical`]: {\n [`${componentCls}-item`]: {\n overflow: 'visible',\n '&-tail': {\n marginInlineStart: stepsIconSize / 2 + token.controlHeightLG,\n padding: `${token.paddingXXS}px ${token.paddingLG}px`\n },\n '&-content': {\n display: 'block',\n width: (stepsIconSize / 2 + token.controlHeightLG) * 2,\n marginTop: token.marginSM,\n textAlign: 'center'\n },\n '&-icon': {\n display: 'inline-block',\n marginInlineStart: token.controlHeightLG\n },\n '&-title': {\n paddingInlineEnd: 0,\n paddingInlineStart: 0,\n '&::after': {\n display: 'none'\n }\n },\n '&-subtitle': {\n display: 'block',\n marginBottom: token.marginXXS,\n marginInlineStart: 0,\n lineHeight\n }\n },\n [`&${componentCls}-small:not(${componentCls}-dot)`]: {\n [`${componentCls}-item`]: {\n '&-icon': {\n marginInlineStart: token.controlHeightLG + (stepsIconSize - stepsSmallIconSize) / 2\n }\n }\n }\n }\n };\n};\nexport default genStepsLabelPlacementStyle;","import { textEllipsis } from '../../style';\nconst genStepsNavStyle = token => {\n const {\n componentCls,\n stepsNavContentMaxWidth,\n stepsNavArrowColor,\n stepsNavActiveColor,\n motionDurationSlow\n } = token;\n return {\n [`&${componentCls}-navigation`]: {\n paddingTop: token.paddingSM,\n [`&${componentCls}-small`]: {\n [`${componentCls}-item`]: {\n '&-container': {\n marginInlineStart: -token.marginSM\n }\n }\n },\n [`${componentCls}-item`]: {\n overflow: 'visible',\n textAlign: 'center',\n '&-container': {\n display: 'inline-block',\n height: '100%',\n marginInlineStart: -token.margin,\n paddingBottom: token.paddingSM,\n textAlign: 'start',\n transition: `opacity ${motionDurationSlow}`,\n [`${componentCls}-item-content`]: {\n maxWidth: stepsNavContentMaxWidth\n },\n [`${componentCls}-item-title`]: Object.assign(Object.assign({\n maxWidth: '100%',\n paddingInlineEnd: 0\n }, textEllipsis), {\n '&::after': {\n display: 'none'\n }\n })\n },\n [`&:not(${componentCls}-item-active)`]: {\n [`${componentCls}-item-container[role='button']`]: {\n cursor: 'pointer',\n '&:hover': {\n opacity: 0.85\n }\n }\n },\n '&:last-child': {\n flex: 1,\n '&::after': {\n display: 'none'\n }\n },\n '&::after': {\n position: 'absolute',\n top: `calc(50% - ${token.paddingSM / 2}px)`,\n insetInlineStart: '100%',\n display: 'inline-block',\n width: token.fontSizeIcon,\n height: token.fontSizeIcon,\n borderTop: `${token.lineWidth}px ${token.lineType} ${stepsNavArrowColor}`,\n borderBottom: 'none',\n borderInlineStart: 'none',\n borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${stepsNavArrowColor}`,\n transform: 'translateY(-50%) translateX(-50%) rotate(45deg)',\n content: '\"\"'\n },\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: '50%',\n display: 'inline-block',\n width: 0,\n height: token.lineWidthBold,\n backgroundColor: stepsNavActiveColor,\n transition: `width ${motionDurationSlow}, inset-inline-start ${motionDurationSlow}`,\n transitionTimingFunction: 'ease-out',\n content: '\"\"'\n }\n },\n [`${componentCls}-item${componentCls}-item-active::before`]: {\n insetInlineStart: 0,\n width: '100%'\n }\n },\n [`&${componentCls}-navigation${componentCls}-vertical`]: {\n [`> ${componentCls}-item`]: {\n marginInlineEnd: 0,\n '&::before': {\n display: 'none'\n },\n [`&${componentCls}-item-active::before`]: {\n top: 0,\n insetInlineEnd: 0,\n insetInlineStart: 'unset',\n display: 'block',\n width: token.lineWidth * 3,\n height: `calc(100% - ${token.marginLG}px)`\n },\n '&::after': {\n position: 'relative',\n insetInlineStart: '50%',\n display: 'block',\n width: token.controlHeight * 0.25,\n height: token.controlHeight * 0.25,\n marginBottom: token.marginXS,\n textAlign: 'center',\n transform: 'translateY(-50%) translateX(-50%) rotate(135deg)'\n },\n [`> ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n visibility: 'hidden'\n }\n }\n },\n [`&${componentCls}-navigation${componentCls}-horizontal`]: {\n [`> ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n visibility: 'hidden'\n }\n }\n };\n};\nexport default genStepsNavStyle;","const genStepsProgressStyle = token => {\n const {\n antCls,\n componentCls\n } = token;\n return {\n [`&${componentCls}-with-progress`]: {\n [`${componentCls}-item`]: {\n paddingTop: token.paddingXXS,\n [`&-process ${componentCls}-item-container ${componentCls}-item-icon ${componentCls}-icon`]: {\n color: token.processIconColor\n }\n },\n [`&${componentCls}-vertical > ${componentCls}-item `]: {\n paddingInlineStart: token.paddingXXS,\n [`> ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: token.marginXXS,\n insetInlineStart: token.stepsIconSize / 2 - token.lineWidth + token.paddingXXS\n }\n },\n [`&, &${componentCls}-small`]: {\n [`&${componentCls}-horizontal ${componentCls}-item:first-child`]: {\n paddingBottom: token.paddingXXS,\n paddingInlineStart: token.paddingXXS\n }\n },\n [`&${componentCls}-small${componentCls}-vertical > ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n insetInlineStart: token.stepsSmallIconSize / 2 - token.lineWidth + token.paddingXXS\n },\n [`&${componentCls}-label-vertical`]: {\n [`${componentCls}-item ${componentCls}-item-tail`]: {\n top: token.margin - 2 * token.lineWidth\n }\n },\n [`${componentCls}-item-icon`]: {\n position: 'relative',\n [`${antCls}-progress`]: {\n position: 'absolute',\n insetBlockStart: (token.stepsIconSize - token.stepsProgressSize - token.lineWidth * 2) / 2,\n insetInlineStart: (token.stepsIconSize - token.stepsProgressSize - token.lineWidth * 2) / 2\n }\n }\n }\n };\n};\nexport default genStepsProgressStyle;","const genStepsProgressDotStyle = token => {\n const {\n componentCls,\n descriptionWidth,\n lineHeight,\n stepsCurrentDotSize,\n stepsDotSize,\n motionDurationSlow\n } = token;\n return {\n [`&${componentCls}-dot, &${componentCls}-dot${componentCls}-small`]: {\n [`${componentCls}-item`]: {\n '&-title': {\n lineHeight\n },\n '&-tail': {\n top: Math.floor((token.stepsDotSize - token.lineWidth * 3) / 2),\n width: '100%',\n marginTop: 0,\n marginBottom: 0,\n marginInline: `${descriptionWidth / 2}px 0`,\n padding: 0,\n '&::after': {\n width: `calc(100% - ${token.marginSM * 2}px)`,\n height: token.lineWidth * 3,\n marginInlineStart: token.marginSM\n }\n },\n '&-icon': {\n width: stepsDotSize,\n height: stepsDotSize,\n marginInlineStart: (token.descriptionWidth - stepsDotSize) / 2,\n paddingInlineEnd: 0,\n lineHeight: `${stepsDotSize}px`,\n background: 'transparent',\n border: 0,\n [`${componentCls}-icon-dot`]: {\n position: 'relative',\n float: 'left',\n width: '100%',\n height: '100%',\n borderRadius: 100,\n transition: `all ${motionDurationSlow}`,\n /* expand hover area */\n '&::after': {\n position: 'absolute',\n top: -token.marginSM,\n insetInlineStart: (stepsDotSize - token.controlHeightLG * 1.5) / 2,\n width: token.controlHeightLG * 1.5,\n height: token.controlHeight,\n background: 'transparent',\n content: '\"\"'\n }\n }\n },\n '&-content': {\n width: descriptionWidth\n },\n [`&-process ${componentCls}-item-icon`]: {\n position: 'relative',\n top: (stepsDotSize - stepsCurrentDotSize) / 2,\n width: stepsCurrentDotSize,\n height: stepsCurrentDotSize,\n lineHeight: `${stepsCurrentDotSize}px`,\n background: 'none',\n marginInlineStart: (token.descriptionWidth - stepsCurrentDotSize) / 2\n },\n [`&-process ${componentCls}-icon`]: {\n [`&:first-child ${componentCls}-icon-dot`]: {\n insetInlineStart: 0\n }\n }\n }\n },\n [`&${componentCls}-vertical${componentCls}-dot`]: {\n [`${componentCls}-item-icon`]: {\n marginTop: (token.controlHeight - stepsDotSize) / 2,\n marginInlineStart: 0,\n background: 'none'\n },\n [`${componentCls}-item-process ${componentCls}-item-icon`]: {\n marginTop: (token.controlHeight - stepsCurrentDotSize) / 2,\n top: 0,\n insetInlineStart: (stepsDotSize - stepsCurrentDotSize) / 2,\n marginInlineStart: 0\n },\n // https://github.com/ant-design/ant-design/issues/18354\n [`${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: (token.controlHeight - stepsDotSize) / 2,\n insetInlineStart: 0,\n margin: 0,\n padding: `${stepsDotSize + token.paddingXS}px 0 ${token.paddingXS}px`,\n '&::after': {\n marginInlineStart: (stepsDotSize - token.lineWidth) / 2\n }\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-item-icon`]: {\n marginTop: (token.controlHeightSM - stepsDotSize) / 2\n },\n [`${componentCls}-item-process ${componentCls}-item-icon`]: {\n marginTop: (token.controlHeightSM - stepsCurrentDotSize) / 2\n },\n [`${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n top: (token.controlHeightSM - stepsDotSize) / 2\n }\n },\n [`${componentCls}-item:first-child ${componentCls}-icon-dot`]: {\n insetInlineStart: 0\n },\n [`${componentCls}-item-content`]: {\n width: 'inherit'\n }\n }\n };\n};\nexport default genStepsProgressDotStyle;","const genStepsRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`&${componentCls}-rtl`]: {\n direction: 'rtl',\n [`${componentCls}-item`]: {\n '&-subtitle': {\n float: 'left'\n }\n },\n // nav\n [`&${componentCls}-navigation`]: {\n [`${componentCls}-item::after`]: {\n transform: 'rotate(-45deg)'\n }\n },\n // vertical\n [`&${componentCls}-vertical`]: {\n [`> ${componentCls}-item`]: {\n '&::after': {\n transform: 'rotate(225deg)'\n },\n [`${componentCls}-item-icon`]: {\n float: 'right'\n }\n }\n },\n // progress-dot\n [`&${componentCls}-dot`]: {\n [`${componentCls}-item-icon ${componentCls}-icon-dot, &${componentCls}-small ${componentCls}-item-icon ${componentCls}-icon-dot`]: {\n float: 'right'\n }\n }\n }\n };\n};\nexport default genStepsRTLStyle;","const genStepsSmallStyle = token => {\n const {\n componentCls,\n stepsSmallIconSize,\n // stepsSmallIconMargin,\n fontSizeSM,\n fontSize,\n colorTextDescription\n } = token;\n return {\n [`&${componentCls}-small`]: {\n [`&${componentCls}-horizontal:not(${componentCls}-label-vertical) ${componentCls}-item`]: {\n paddingInlineStart: token.paddingSM,\n '&:first-child': {\n paddingInlineStart: 0\n }\n },\n [`${componentCls}-item-icon`]: {\n width: stepsSmallIconSize,\n height: stepsSmallIconSize,\n // margin: stepsSmallIconMargin,\n marginTop: 0,\n marginBottom: 0,\n marginInline: `0 ${token.marginXS}px`,\n fontSize: fontSizeSM,\n lineHeight: `${stepsSmallIconSize}px`,\n textAlign: 'center',\n borderRadius: stepsSmallIconSize\n },\n [`${componentCls}-item-title`]: {\n paddingInlineEnd: token.paddingSM,\n fontSize,\n lineHeight: `${stepsSmallIconSize}px`,\n '&::after': {\n top: stepsSmallIconSize / 2\n }\n },\n [`${componentCls}-item-description`]: {\n color: colorTextDescription,\n fontSize\n },\n [`${componentCls}-item-tail`]: {\n top: stepsSmallIconSize / 2 - token.paddingXXS\n },\n [`${componentCls}-item-custom ${componentCls}-item-icon`]: {\n width: 'inherit',\n height: 'inherit',\n lineHeight: 'inherit',\n background: 'none',\n border: 0,\n borderRadius: 0,\n [`> ${componentCls}-icon`]: {\n fontSize: stepsSmallIconSize,\n lineHeight: `${stepsSmallIconSize}px`,\n transform: 'none'\n }\n }\n }\n };\n};\nexport default genStepsSmallStyle;","const genStepsVerticalStyle = token => {\n const {\n componentCls,\n stepsSmallIconSize,\n stepsIconSize\n } = token;\n return {\n [`&${componentCls}-vertical`]: {\n display: 'flex',\n flexDirection: 'column',\n [`> ${componentCls}-item`]: {\n display: 'block',\n flex: '1 0 auto',\n paddingInlineStart: 0,\n overflow: 'visible',\n [`${componentCls}-item-icon`]: {\n float: 'left',\n marginInlineEnd: token.margin\n },\n [`${componentCls}-item-content`]: {\n display: 'block',\n minHeight: token.controlHeight * 1.5,\n overflow: 'hidden'\n },\n [`${componentCls}-item-title`]: {\n lineHeight: `${stepsIconSize}px`\n },\n [`${componentCls}-item-description`]: {\n paddingBottom: token.paddingSM\n }\n },\n [`> ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: token.stepsIconSize / 2 - token.lineWidth,\n width: token.lineWidth,\n height: '100%',\n padding: `${stepsIconSize + token.marginXXS * 1.5}px 0 ${token.marginXXS * 1.5}px`,\n '&::after': {\n width: token.lineWidth,\n height: '100%'\n }\n },\n [`> ${componentCls}-item:not(:last-child) > ${componentCls}-item-container > ${componentCls}-item-tail`]: {\n display: 'block'\n },\n [` > ${componentCls}-item > ${componentCls}-item-container > ${componentCls}-item-content > ${componentCls}-item-title`]: {\n '&::after': {\n display: 'none'\n }\n },\n [`&${componentCls}-small ${componentCls}-item-container`]: {\n [`${componentCls}-item-tail`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: token.stepsSmallIconSize / 2 - token.lineWidth,\n padding: `${stepsSmallIconSize + token.marginXXS * 1.5}px 0 ${token.marginXXS * 1.5}px`\n },\n [`${componentCls}-item-title`]: {\n lineHeight: `${stepsSmallIconSize}px`\n }\n }\n }\n };\n};\nexport default genStepsVerticalStyle;","const genStepsInlineStyle = token => {\n const {\n componentCls,\n inlineDotSize,\n inlineTitleColor,\n inlineTailColor\n } = token;\n const containerPaddingTop = token.paddingXS + token.lineWidth;\n const titleStyle = {\n [`${componentCls}-item-container ${componentCls}-item-content ${componentCls}-item-title`]: {\n color: inlineTitleColor\n }\n };\n return {\n [`&${componentCls}-inline`]: {\n width: 'auto',\n display: 'inline-flex',\n [`${componentCls}-item`]: {\n flex: 'none',\n '&-container': {\n padding: `${containerPaddingTop}px ${token.paddingXXS}px 0`,\n margin: `0 ${token.marginXXS / 2}px`,\n borderRadius: token.borderRadiusSM,\n cursor: 'pointer',\n transition: `background-color ${token.motionDurationMid}`,\n '&:hover': {\n background: token.controlItemBgHover\n },\n [`&[role='button']:hover`]: {\n opacity: 1\n }\n },\n '&-icon': {\n width: inlineDotSize,\n height: inlineDotSize,\n marginInlineStart: `calc(50% - ${inlineDotSize / 2}px)`,\n [`> ${componentCls}-icon`]: {\n top: 0\n },\n [`${componentCls}-icon-dot`]: {\n borderRadius: token.fontSizeSM / 4\n }\n },\n '&-content': {\n width: 'auto',\n marginTop: token.marginXS - token.lineWidth\n },\n '&-title': {\n color: inlineTitleColor,\n fontSize: token.fontSizeSM,\n lineHeight: token.lineHeightSM,\n fontWeight: 'normal',\n marginBottom: token.marginXXS / 2\n },\n '&-description': {\n display: 'none'\n },\n '&-tail': {\n marginInlineStart: 0,\n top: containerPaddingTop + inlineDotSize / 2,\n transform: `translateY(-50%)`,\n '&:after': {\n width: '100%',\n height: token.lineWidth,\n borderRadius: 0,\n marginInlineStart: 0,\n background: inlineTailColor\n }\n },\n [`&:first-child ${componentCls}-item-tail`]: {\n width: '50%',\n marginInlineStart: '50%'\n },\n [`&:last-child ${componentCls}-item-tail`]: {\n display: 'block',\n width: '50%'\n },\n '&-wait': Object.assign({\n [`${componentCls}-item-icon ${componentCls}-icon ${componentCls}-icon-dot`]: {\n backgroundColor: token.colorBorderBg,\n border: `${token.lineWidth}px ${token.lineType} ${inlineTailColor}`\n }\n }, titleStyle),\n '&-finish': Object.assign({\n [`${componentCls}-item-tail::after`]: {\n backgroundColor: inlineTailColor\n },\n [`${componentCls}-item-icon ${componentCls}-icon ${componentCls}-icon-dot`]: {\n backgroundColor: inlineTailColor,\n border: `${token.lineWidth}px ${token.lineType} ${inlineTailColor}`\n }\n }, titleStyle),\n '&-error': titleStyle,\n '&-active, &-process': Object.assign({\n [`${componentCls}-item-icon`]: {\n width: inlineDotSize,\n height: inlineDotSize,\n marginInlineStart: `calc(50% - ${inlineDotSize / 2}px)`,\n top: 0\n }\n }, titleStyle),\n [`&:not(${componentCls}-item-active) > ${componentCls}-item-container[role='button']:hover`]: {\n [`${componentCls}-item-title`]: {\n color: inlineTitleColor\n }\n }\n }\n }\n };\n};\nexport default genStepsInlineStyle;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport RcSteps from 'rc-steps';\nimport * as React from 'react';\nimport Tooltip from '../tooltip';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport Progress from '../progress';\nimport useLegacyItems from './useLegacyItems';\nimport useStyle from './style';\nconst Steps = props => {\n const {\n percent,\n size,\n className,\n direction,\n items,\n responsive = true,\n current = 0,\n children\n } = props,\n restProps = __rest(props, [\"percent\", \"size\", \"className\", \"direction\", \"items\", \"responsive\", \"current\", \"children\"]);\n const {\n xs\n } = useBreakpoint(responsive);\n const {\n getPrefixCls,\n direction: rtlDirection\n } = React.useContext(ConfigContext);\n const realDirectionValue = React.useMemo(() => responsive && xs ? 'vertical' : direction, [xs, direction]);\n const prefixCls = getPrefixCls('steps', props.prefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const isInline = props.type === 'inline';\n const iconPrefix = getPrefixCls('', props.iconPrefix);\n const mergedItems = useLegacyItems(items, children);\n const mergedPercent = isInline ? undefined : percent;\n const stepsClassName = classNames({\n [`${prefixCls}-rtl`]: rtlDirection === 'rtl',\n [`${prefixCls}-with-progress`]: mergedPercent !== undefined\n }, className, hashId);\n const icons = {\n finish: /*#__PURE__*/React.createElement(CheckOutlined, {\n className: `${prefixCls}-finish-icon`\n }),\n error: /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-error-icon`\n })\n };\n const stepIconRender = _ref => {\n let {\n node,\n status\n } = _ref;\n if (status === 'process' && mergedPercent !== undefined) {\n // currently it's hard-coded, since we can't easily read the actually width of icon\n const progressWidth = size === 'small' ? 32 : 40;\n // iconWithProgress\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-progress-icon`\n }, /*#__PURE__*/React.createElement(Progress, {\n type: \"circle\",\n percent: mergedPercent,\n width: progressWidth,\n strokeWidth: 4,\n format: () => null\n }), node);\n }\n return node;\n };\n const itemRender = (item, stepItem) => item.description ? /*#__PURE__*/React.createElement(Tooltip, {\n title: item.description\n }, stepItem) : stepItem;\n return wrapSSR( /*#__PURE__*/React.createElement(RcSteps, Object.assign({\n icons: icons\n }, restProps, {\n current: current,\n size: size,\n items: mergedItems,\n itemRender: isInline ? itemRender : undefined,\n stepIcon: stepIconRender,\n direction: realDirectionValue,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n className: stepsClassName\n })));\n};\nSteps.Step = RcSteps.Step;\nif (process.env.NODE_ENV !== 'production') {\n Steps.displayName = 'Steps';\n}\nexport default Steps;","import * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../_util/warning';\nfunction filter(items) {\n return items.filter(item => item);\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Steps', 'Step is deprecated. Please use `items` directly.') : void 0;\n const childrenItems = toArray(children).map(node => {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n const {\n props\n } = node;\n const item = Object.assign({}, props);\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","import * as antIc from \"@ant-design/icons\";\r\nimport { Avatar, Progress, Steps } from \"antd\";\r\nimport TextArea from \"antd/es/input/TextArea\";\r\nimport _, { cloneDeep } from \"lodash\";\r\nimport { memo, useEffect, useState } from \"react\";\r\nimport { useAppSelector } from \"../../../../../app/hooks\";\r\nimport url from '../../../../../assets/img/how-to-make-a-vrchat-avatar.jpg';\r\nimport { checkProps } from \"../../../../../utils\";\r\nconst BlockInfoView = () => {\r\n const [state, setState] = useState({\r\n data: null,\r\n percent: 0\r\n });\r\n const dataReducer = useAppSelector((state) => state.screens.customer);\r\n const checkPropsAvaliable = (obj: any) => {\r\n var count = 0\r\n if (obj && obj !== undefined) {\r\n for (let prop in obj) {\r\n if (typeof obj[prop] === 'string' && obj[prop].length !== 0) {\r\n count++;\r\n }\r\n }\r\n }\r\n return count;\r\n }\r\n const percentVal = (totalField: number, totalFieldDone: number) => {\r\n if (totalField && totalFieldDone && totalField > 0) {\r\n return (totalFieldDone * 100 / totalField).toFixed();\r\n }\r\n return 0;\r\n }\r\n const getStatus = (percent: number) => {\r\n if(percent >= 0 && percent <= 50) {\r\n return \"exception\"\r\n } else if (percent > 50 && percent <= 75) {\r\n return \"normal\"\r\n } else return \"success\"\r\n }\r\n useEffect(() => {\r\n if (dataReducer) {\r\n const newData = cloneDeep({ ...dataReducer?.dataDetail });\r\n if(!_.isEmpty(newData)) {\r\n setState({\r\n data: checkProps(newData),\r\n percent: percentVal(Object.keys(dataReducer?.dataDetail).length, checkPropsAvaliable(dataReducer?.dataDetail))\r\n });\r\n }\r\n }\r\n }, [dataReducer]);\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    Hồ sơ
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n } />\r\n
    \r\n
    \r\n
    \r\n
    {state?.data?.tenDoiTac}
    \r\n
    \r\n
    {state?.data?.dienDoiTac}
    \r\n
    \r\n \r\n
    {state?.data?.dienThoai}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Doanh nghiệp
    \r\n
    \r\n \r\n
    {state?.data?.tinhThanh}
    \r\n
    \r\n
    \r\n
    \r\n Tỷ lệ hoàn thiện thông tin\r\n {state?.percent}%\r\n
    \r\n \r\n {/* success, exception, normal, */}\r\n
    \r\n
    \r\n
    \r\n \r\n
    {state?.data?.quocGia}
    \r\n
    \r\n
    \r\n \r\n
    {state?.data?.maSoThue}
    \r\n
    \r\n
    \r\n \r\n
    {state?.data?.tenNganHang}
    \r\n
    \r\n
    \r\n \r\n
    {state?.data?.email}
    \r\n
    \r\n {/*
    \r\n \r\n
    Đại học
    \r\n
    */}\r\n
    \r\n
    \r\n {/* Thông */}\r\n
    \r\n
    \r\n \r\n },\r\n {\r\n title: 'Khách hàng chính thức',\r\n description: \"22/12/2022\",\r\n icon: <>\r\n\r\n },\r\n {\r\n title: 'Khách hàng thân thiết',\r\n description: \"22/12/2022\",\r\n icon: <>\r\n },\r\n ]}\r\n />\r\n
    \r\n
    \r\n
    \r\n {/* Chạy vòng lặp hiển thị thông tin lịch sử tác động */}\r\n
    \r\n
    \r\n
    Khách hàng: T***
    \r\n
    15:00 - 15/05/2023
    \r\n
    \r\n
    Trung tâm SX cơ khí
    \r\n
    \r\n
    \r\n
    \r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    Thông tin nhân khẩu học
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.maDoiTac}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.tenDoiTac}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.maSoThue}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/* Viễn thông, điện tử, cơ khí, năng lượng tái tạo */}\r\n\t\t\t\t\t\t\t\t\t
    Không có dữ liệu
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.nhomDoiTac}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.nguoiDaiDien}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/* Theo doanh thu */}\r\n\t\t\t\t\t\t\t\t\t
    Không có dữ liệu
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    Thông tin chi tiết
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.doiTuong}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.phanLoai}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.soDKKD}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {formatDate(state?.ngayCapDKKD)}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.soTaiKhoan}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    {state?.tenNganHang}
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    Địa chỉ khách hàng
    \r\n\t\t\t\t\t\t\t{/*
    */}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{/*
    \r\n\t\t\t\t\t\t\t\t\t\t{state?.diaChi}\r\n\t\t\t\t\t\t\t\t\t
    */}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    {state?.quocGia}
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    {state?.tinhThanh}
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    {state?.quanHuyen}
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    {state?.diaChi}
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    Kinh tế
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    Số đơn hàng
    \r\n\t\t\t\t\t\t\t\t
    {state?.numberOfOrders}
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    Giá trị trung bình trên đơn
    \r\n\t\t\t\t\t\t\t\t
    {avgVal(state.numberOfOrders, state.totalValue)}
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t{/*
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    Tần suất mua hàng theo
    \r\n\t\t\t\t\t\t\t\t
    T: 100 - Q: 1.000 - N: 10.000
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    */}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    Tổng giá trị đã mua
    \r\n\t\t\t\t\t\t\t\t
    {state?.totalValue?.toLocaleString('en-US', {style : 'currency', currency : 'VND'})}
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t{/*
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    Điểm tích lũy
    \r\n\t\t\t\t\t\t\t\t
    50.000.000 Điểm
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    Mức thu nhập
    \r\n\t\t\t\t\t\t\t\t
    50.000.000
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    */}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t
    \r\n\t\t\t\r\n\t\t